常函数:
常函数:成员函数后面加上const,我们称该成员函数是常函数
常函数内不能修改成员属性
如果想要在常函数内修改成员属性的话,那么成员属性在声明时,要加关键字mutable
常对象:
声明对象前加const称该对象为常对象
常对象只能调用常函数
this指针的本质是指针常量,即指针的指向不可以改变
在成员函数后面+const用来修饰this指向的值,表示this指针指向的数值也不可以发生改变
THIS的原型是persion *const this,加上const以后-->const persion * const this
class persion
{
public:
int age;
void alter() const
{
age = 100; //这里不允许被修改
}
};
如果非要修改成员变量的属性,加一个mutable的关键字修饰【常函数与常对象中也可以修改】
常对象不可以调用普通成员函数,因为普通成员函数可以修改成员变量属性,这就为常对象的属性
修改提供了一个机会。