類成員函式後帶const

2021-04-24 03:01:05 字數 634 閱讀 5118

——

www.libcl.cn

這篇文章主要記錄我對"類成員函式後帶const"的理解。

例子:class consttemp

void seta(int na);

void printa()const;

};為什麼在成員函式printa()後面加多乙個const?

「這是把整個函式修飾為const,即『函式體內不能對成員資料做任何改動『;且如果宣告這個類的乙個const例項,這時則只能呼叫這個類中有const修飾的函式。」

我的理解是:成員函式void printa()const;不能對函式體內成員變數int a作任何修改。

貼上我以下的測試**:

#include 

using

namespace std;

class consttemp

void seta(int na);

void printa()const;

};void consttemp::seta(int na)

void consttemp::printa() const

int main()

該例子主要呈現的結果是:「且如果宣告這個類的乙個const例項,這時則只能呼叫這個類中有const修飾的函式。」

成員函式後的const

const的其他情況不在贅述,我說的這個是只能用於修飾成員函式,用處是向編譯器宣告使用者不會更改傳入變數,要注意的是一種情況,就是當類內有兩個重名的函式,比如 void t print const int const void t print const int 這兩個成員函式是不同的,因為第乙個函...

const與類成員函式

既然類的例項是個物件,那麼它也應該可以被 const 修飾。按照 const 的定義,const sampleclass foo const 與 sampleclass foo 並不是同樣的東西。簡單來說,foo const 不能被改變,顯然也就是它的字段不能被改變。那麼普通的物件 foo能做的事情...

C 中成員函式後加const

注 以下內容來自網路,感謝的整理 非靜態成員函式後面加const 加到非成員函式或靜態成員後面會產生編譯錯誤 表示成員函式隱含傳入的this指標為 const指標,決定了在該成員函式中,任意修改它所在的類的成員的操作都是不允許的 因為隱含了對this指標的const引用 唯一的例外是對於 mutab...