常函数:
· 在成员函数后加const修饰为常函数
· 常函数不能修改成员变量
· 如果一定要修改成员变量要在成员变量前加mutable
常对象
· 在对象生命前加const为常对象
· 常对象只能访问常函数和mutable修饰的成员变量
class Person
{
public:
void showPersonA() const { // 加const修饰则变为常函数不能更改成员变量
//m_A = 100; //报错因为不能更改成员变量
m_B = 100; // 可以运行,因为m_B是一个mutable修饰的变量
}
int m_A;
mutable int m_B;
};
void test01()
{
const Person p1; // const修饰则为常对像
//p1.m_A = 100;// 报错表达式必须是可修改的左值,常对象不能访问成员变量
p1.m_B = 100; // mutable 修饰的变量可以被常对象访问
p1.showPersonA();
}