const修饰成员函数
常函数:
成员函数后加const后我们称为这个函数为常函数
常函数内不可以修改成员属性
成员属性声明时加关键字mutable后,在常函数中依然可以修改
c
class Animal {
public:
void fun1(){
//这是一个普通的成员函数
}
void fun2() const{
//这是一个常函数
//m_A = 100;//报错,常函数不可修改成员属性
m_B = 100;//正常,常函数可以修改mutable修饰的成员属性
}
public:
int m_A;
mutable int m_B; //可修改 可变的
}
常对象:
声明对象前加const称该对象为常对象
常对象只能调用常函数
c
int main(){
const Animal dog;//实例一个常对象
//dog.mA = 100; //常对象不能修改成员变量的值,但是可以访问
dog.m_B = 100; //但是常对象可以修改mutable修饰成员变量
//dog.fun1();//报错,常对象只能调用常函数
dog.fun2();//常对象只能调用常函数
}