C++const成員規則

來源:互聯網
上載者:User

標籤:

越來越討厭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的高貴印記,我只能做出高尚的行為。(規則四)



實現原理:待續。。。

C++const成員規則

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.