close
一般來說,對一個常數物件而言,沒有任何方法可以更動其物件成員的值。但C++提供了一個「例外」的方法,來更動一個常數物件成員的值。
利用:mutable 變數形態 變數名稱; 將變數設為可容許變更的:
class classA
{
public:
mutable int a; //把a設定為「可變更」的成員。就算在常數物件下也可以變更。
void seta_10()const{a=10;} //設定常數成員函式
int get_a()
{return a;}
classA(){ a=100;} //建構子
};
const classA A; //設定常數物件
A.a=5; //這一行可行,因為a已經被設為mutable(可變動的)
cout<<A.a<<endl; //顯示5
A.seta_10(); //這一行可行,因為a已經被設為mutable(可變動的)
cout<<A.a<<endl; //顯示10
註:若把private區域的物件成員設為mutable,此物件成員仍然沒辦法由類別外的程式碼所讀取。
文章標籤
全站熱搜