C 中的const物件與const成員函式

2021-08-22 05:54:11 字數 1331 閱讀 7105

在前邊幾章的內容中,我們知道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...