在前邊幾章的內容中,我們知道c++的類中可以有const成員變數,並且還知道類中的const成員變數只能在初始化列表中初始化。同樣,在c++中,還存在const物件以及const成員函式,const修飾的物件為唯讀物件,他們的特性如下:
const成員函式的定義:需要在函式的宣告及定義的後邊加上const關鍵字
-const物件只能呼叫const成員函式
-const成員函式只能呼叫const成員函式
-const成員函式中不能改變成員變數的值
下邊以一段**來驗證一下:
我們編譯一下:#include #include using namespace std;
class test
void fun2() const
void fun3()
};int main()
根據**裡注釋的分析,編譯結果與我們的分析是吻合的。
在c++中
-每個物件都有自己的成員變數
-所有物件共享類中的成員函式
-成員函式能直接訪問成員變數
-成員函式中通過隱式的this指標來指明當前所在的物件
編譯輸出一下:#include #include using namespace std;
class test
};int main()
從輸出我們看到,直接通過&獲取物件的位址與通過成員函式返回的this指標值,是一樣的,所以說c++中,類中的this指標就代表當前物件的指標,當我們在物件成員函式中通過this指標指向的變數,就是該物件對應的成員變數: this->m_value;這裡的m_value,就是當前物件中的成員變數(每個物件都有自己的成員變數)。
總結:-const關鍵字能夠修飾物件,得到唯讀物件
-唯讀物件只能呼叫const成員函式
-每個物件擁有各自的成員變數
-所有物件共享類的成員函式
-隱藏的this指標用於表示當前物件
c 中const物件與const成員函式
一些成員函式改變物件,一些成員函式不改變物件。例如 int point gety 這個函式被呼叫時,不改變point物件,而下面的函式改變point物件 void point setpt int x,int y 為了使成員函式的意義更加清楚,我們可在不改變物件的成員函式的函式原型中加上const說明...
c中的const與c 中的const
c中的const是乙個偽唯讀識別符號。include include int main 此時輸出a的值為20,被指標間接的改變了。c 中,const進行了增強,不在是乙個偽識別符號了。const int a 10 int p int a p 20 cout a p endl cout a endl ...
C 中const成員函式和const物件
一 c 中函式和物件 1.const資料成員 跟const常量一樣,只是乙個在類裡 而且是在建構函式裡 乙個在類外而已,都必須初始化。2.const成員函式 即普通成員函式後再加const。它可以讀取資料成員的值,但不能修改它們。若要修改 時,資料成員前必須加mutable。以指定其可被任意更改。m...