C++ 速查手冊
9.12 - mutable 成員
類別中的 const 的成員函數不能修改資料變數的值,但可修改宣告為 mutable 的成員變數,舉例如下
#include <iostream>
class Demo {
public:
Demo(int pa) {
a = pa;
}
int do_something() const {
++a;
return a;
}
private:
mutable int a;
};
int main(void) {
Demo d(24);
std::cout << d.do_something() << std::endl;
std::cout << d.do_something() << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0912.cpp
功能:示範 C++ 的類別
作者:張凱慶*/
我們在資料成員 a 的部份加進 mutable 的宣告
mutable int a;
這樣 const 的 do_something() 就可以修改 a 的值
int do_something() const {
++a;
return a;
}
編譯執行,結果如下
$ g++ u0912.cpp |
$ ./a.out |
25 |
26 |
$ |
相關教學影片