C++const成員規則

越來越討厭C++了,一個簡單的const成員變量都搞得這麼麻煩。

概念:const成員變量、const成員函數、const類變量

  • const成員變量是初始化後就不能再改變的。在整個過程中都始終如一。素以不允許有賦值操作。
  • const成員函數是保證不會修改成員變量的成員函數。
  • const類變量是指聲明一個類變量時使用了const,比如const A a;

意義:

const成員變量保證一個變量的值永遠不變。
const成員函數保證永遠不會改變類的狀態。(永遠不會修改變量的值)


規則:

規則一:

const成員變量只能在構造函數的初始化列表中初始化,不能在構造函數體內賦值。否則會產生只讀數據的寫錯誤。

規則二:

const成員變量不能出現任何賦值操作。

規則三:

非const成員函數和const成員函數都可以讀訪問非const類變量的const或非const成員變量。

規則四:

非const成員函數不可以訪問const類變量的任意成員變量。只有const成員函數可以。

規則五:

const成員函數中不允許有任何對成員變量的賦值操作。(保證其不會修改成員變量值)

規則六:

const成員函數不能調用非const成員函數。(還是爲了保證不會修改成員變量值,天知道你調用的非const成員函數會幹什麼)


價值觀:(這些能幫助你理解記憶)

const變量:我是永恆的,任何賦值操作都是對我的侮辱。(規則一二)

const成員函數:所謂瓜田不納履,李下不整冠,我懂得避嫌(規則五);而且我任人唯信,那些沒有const認證的傢伙有好有壞,我不能信任它們。我知道它們中間可能有好人,但得排除風險不是嗎?(規則六)  

const類變量:我出生時就打上了const的高貴印記,我只能做出高尚的行爲。(規則四)



實現原理:待續。。。

發佈了134 篇原創文章 · 獲贊 243 · 訪問量 54萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章