一、const
1、常对象只能调用常成员函数
2、普通对象可以调用全部的成员函数包括常成员函数
3、常方法不能调用普通方法 可以调用常方法、静态成员方法
4、普通方法可以调用常方法
解释:
当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。
在C++中,this指针被隐含地声明为: X *const this,这意味着不能给this 指针赋值;
在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改
(即不能对这种对象的数据成员进行赋值操作);
由于this并不是一个常规变量,所以,不能取得this的地址
二、static
1、静态成员函数只能访问静态成员变量
2、静态成员变量不属于对象,而是属于整个类
3、静态成员变量不能通过初始化列表进行初始化,必须类外初始化
int Test::ma = 12;
4、static修饰的成员函数没有this指针,不依赖对象,是c标准调用约定
三、构造函数和析构函数不能声明为const
因为:(1)对象的初始化必须经过构造函数进行初始化
(2)析构函数要释放对象所占的资源
1万+

被折叠的 条评论
为什么被折叠?



