關於C 中的常量成員函式

2021-07-11 10:47:05 字數 428 閱讀 1575

常量成員函式宣告:如:int get() const;

規則:1.常量成員函式不修改物件。

2.常量成員函式在定義和宣告中都應加const限定

3.非常量成員函式不能被常量成員函式呼叫,但建構函式和析構函式除外。

4.常量(const物件)物件只能呼叫常量成員函式。(const物件的資料成員在物件壽命週期內不能改變,因此其只能呼叫常量成員函式)。

意義:1.使成員函式的意義更加清楚,將成員函式分修改物件和不修改物件兩類。

2.增加程式的健壯性,常量成員函式企圖修改資料成員或呼叫非常量成員函式,編譯器會指出錯誤。

原因:對於x型別的非常量成員函式而言,其this指標的型別是 x * const,該指標自身是常量;但是對於x型別的常量成員函式而言,其this指標的型別是const x * const,是乙個常量指標。

參考:

常量成員函式

參考 常量成員函式宣告 如 int get const 規則 1.常量成員函式不修改物件。2.常量成員函式在定義和宣告中都應加const限定 3.非常量成員函式不能被常量成員函式呼叫,但建構函式和析構函式除外。4.常量 const物件 物件只能呼叫常量成員函式。const物件的資料成員在物件壽命週期...

常量成員函式

class a void fun1 const error assignment of member a a in read only objectclass a void fun1 const error passing const a as this argument of void a fun...

C 常量成員函式的含義

在類x的非常量成員函式中,this指標的型別為x const。也就是說,它是指向非常量x的常量指標。而在類x的常量成員函式中,this的型別為const x const。也就是說,是指向常量x的常量指標。這就是常量成員函式和非常量成員函式的區別。對成員函式的this指標型別加上常量修飾符,就可以解釋...