常成员const
来源:互联网 发布:手机看电影软件排行 编辑:程序博客网 时间:2024/05/18 00:15
常数据成员:const 数据类型 数据成员名
1.定义常量必须初始化,对于类对象的const数据成员而且只能在类的构造函数的成员初始化列表中进行,另外,如果类中包含了引用型的数据成员 或者 其他类类型的数据成员,其初始化工作也必须在构造函数的初始化列表中完成,普通数据成员既可以在初始化列表中完成也可以在类的构造函数的体内完成;数据成员在初始化列表中的初始化顺序与在类中声明的顺序有关,而与初始化列表的书序无关;
注:静态数据成员(包括static const 数据成员)必须在类外初始化;
注:由于常数据成员和静态的数据成员必须进行初始化,所以不能用默认的构造函数;
常成员函数:返回值类型 成员函数名 (参数列表)const;
使用规则:
1、常成员函数只能使用成员数据而不能修改成员数据;
2、常成员函数只能调用const成员函数,不能调用非const成员函数;任何数据成员可以被使用;
3、非const成员函数既能调用const成员函数,也可以调用非const成员函数;
4、const对象只能调用public const成员函数,不能调用非const成员函数;
以下是测试代码:
#include<iostream>using namespace std;class A{public:A(int i):a(i),b(a),c1(a){}void f1(){a =5;f2();//调用const成员函数}void f2()const{cout<<a <<b <<c1 << c2<<endl;}private:int a;int& b;const int c1;static const int c2;}; const int A::c2 = 8; int main() { const A obj1(2);//建立const A类型的对象obj1; obj1.f2();//只能调用const成员函数; A obj2(2);//建立A类对象obj2; obj2.f2();//调用const成员函数; obj2.f1();//调用非const成员函数; return 0; } //输出结果是2228\ 2228\ 5528
//解释:输出结果第三个为什么b的值是5?
因为b被声明为int&,在初始的时候使用a初始的,所以b就是a的一个别名,当a修改为5它自然也是5
阅读全文
0 0
- 常成员const
- C++中const:常引用,常对象,常对象成员
- const用法之常对象,常成员函数,常引用
- const 修饰的常函数成员
- void f() const 常成员函数
- C++常成员函数 - const 关键字
- C++常成员函数 - const 关键字
- C++常成员函数 - const 关键字
- C++常成员函数 - const 关键字
- 常成员函数:Const类限定的成员函数
- C++常数据成员精讲—const关键字
- C++常数据成员精讲—const关键字
- C++中(const)常数据成员初始化
- C++常数据成员精讲—const关键字
- 常成员、常对象
- 常引用,常对象,常成员函数,常数据成员~
- 常对象 常成员函数
- 常对象与常成员
- iOS开发之属性修饰符
- tornado web异步框架 和 nodejs 的异步对比
- 22 Qt for android里调用so动态库
- VMware与锐捷冲突上不了网
- 【Golang】关于信号signal处理
- 常成员const
- 微信公众号开发-输入城市查询天气
- java---发送邮件功能
- (115)注释
- python在windows下使用pip安装wordcloud模块失败
- Mongo的morphia读取Map<String, List<Object>>类型数据的问题
- spring 注入方式和自动装配介绍
- Volley框架下json不显示中文的问题
- 词法分析