作用:
- 常量对象中,mutable成员变量可被修改
- const 函数可修改 mutable数据成员
注意:
- mutable 与 static 不可同时使用
- 少用 mutable,避免"特例"过多
举个栗子
#include <iostream>
using namespace std;
class Student{
private:
string name;
mutable int score;
public:
Student(const string& n, const int s): name(n), score(s){}
// mutable static int school; // 编译错误
static int school;
void changeScore(int s) const{
score = s;
}
// const 函数 不可修改成员变量
// void changeName(string n) const {
// name = n;
// }
void display() const {
cout << "Student name is " << name << endl;
cout << "score is " << score << endl;
}
};
int main() {
const Student gru("Gru", 20);
gru.display();
gru.changeScore(100);
gru.display();
return 0;
}
输出
Student name is Gru
score is 20
Student name is Gru
score is 100