一、c++中函式和物件
1.const資料成員:跟const常量一樣,只是乙個在類裡(而且是在建構函式裡),乙個在類外而已,都必須初始化。
2.const成員函式:即普通成員函式後再加const。它可以讀取資料成員的值,但不能修改它們。若要修改
時,資料成員前必須加mutable。以指定其可被任意更改。mutable是ansi c++考慮到實際程式設計時,可能一定要修改const物件中的某個資料成員而設的。const成員函式可以被相同參數列的非const成員函式過載。
3.普通物件:可以呼叫任意成員函式。見下面的例子
4.const物件:僅能呼叫const成員函式,但是建構函式和析構函式是唯一不是const成員函式卻可以被const物件呼叫的成員函式。
二、例1
class point ; int point::gety() const//const 成員函式應該在函式原型說明和函式定義中都增加const 限定:
三、例2
class set bool member(const int) const; void addelem(const int); //... private: int card; }; bool set::member (const int elem) const非常量成員函式不能被常量成員物件呼叫,因為它可能企圖修改常量的資料成員:
const set s;
s.addelem(10); // 非法: addelem 不是常量成員函式
s.member(10); // 正確
但建構函式和析構函式對這個規則例外,它們從不定義為常量成員,但可被常量物件呼叫(被自動呼叫)。它們也能給常量的資料成員賦值。
四、最後乙個例子
class a void printa() void printa()
C 中類的const成員函式和const物件
2.const成員函式 即普通成員函式後再加const。它可以讀取資料成員的值,但不能修改它們。若要修改 時,資料成員前必須加mutable。以指定其可被任意更改。mutable是ansic 考慮到實際程式設計時,可能一定要修改const物件中的某個資料成員而設的。const成員函式可以被相同參數列...
C 中的const成員函式和mutable關鍵字
在c 中,如果乙個類的成員函式不會改變這個類的成員變數的值,我們通常將這樣的函式宣告稱const成員函式。例如,1 classdummy2 在編寫和使用const成員函式的時候需要知道幾點規則 a.const物件只能訪問const成員函式,不能訪問非const函式。b.const物件的成員是不可修改...
C 中的const成員函式
2 mutable關鍵字 對於乙個const物件來說,是不能呼叫普通的成員函式的。因為,c 認為,const 常量 物件,如果允許去呼叫普通的成員函式,而這個成員函式內部可能會修改這個物件的資料成員!而這將導致const物件不再是const物件!const物件只能呼叫const成員函式,如果乙個成員...