// 当const修饰成员函数时,函数内不能修改普通成员变量,但可以修改mutable修饰的成员变量。 当const修饰类对象时,只能读成员变量,不能修改成员变量的值。可以调用const修饰的成员函数,不 // 能调用普通成员函数 #include #include #include using namespace std; class A { public: int x; mutable int y; public: void setXY(int x, int y) const { // this->x = x; // error this->y = y; } void show() { cout << x << ", " << y << endl; } }; int main() { A a1; a1.setXY(1, 2); // const 函数,内部不修改非 mutable 的成员变量 a1.show(); // const A a2; // 报错,const 变量必须存在初始值(右值) const A a2 = A(); a2.setXY(0, 30); // const 对象可以访问 const 的成员函数 // a2.show(); // const 对象不能访问非 const 成员函数 return 0; }