close

< C++完整教學目錄 >

 

 

一般來說,對一個常數物件而言,沒有任何方法可以更動其物件成員的值。但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,此物件成員仍然沒辦法由類別外的程式碼所讀取。

 

 

上一篇:類別(class) 常數物件

下一篇:class(類別) static靜態宣告

arrow
arrow
    創作者介紹
    創作者 埃伯 的頭像
    埃伯

    程式語言教學

    埃伯 發表在 痞客邦 留言(0) 人氣()