【C++】多態性(函數重載與虛函數)

來源:互聯網
上載者:User

標籤:

  多態性就是同一符號或名字在不同情況下具有不同解釋的現象。多態性有兩種表現形式:

  • 編譯時間多態性:同一對象收到相同的訊息卻產生不同的函數調用,一般通過函數重載來實現,在編譯時間就實現了綁定,屬於靜態繫結。
  • 運行時多態性:不同對象在收到相同訊息時產生不同的動作,一般通過虛函數來實現,只有在運行時才能實現綁定,屬於動態綁定。
虛函數

  虛函數是在基類中用關鍵字virtual 標識的成員函數,可以在一個或多個衍生類別中被重新定義。如果一個函數被定義為虛函數,那麼,即使是使用指向基類對象的指標來調用該成員函數,也能保證所調用的是正確的特定於實際對象的成員函數。這正是虛函數的優點所在。

  一旦基類的成員函數被定義成了虛函數,則該基類的衍生類別的同名成員函數(名字、傳回值類型、參數個數及類型均相同)不管前面是否加關鍵字virtual ,同樣也具有虛特性,同樣是虛函數。定義虛函數文法格式如下:

    class <類名>
    {
      virtual <傳回值類型><函數名>(<形參表>);
    };

  虛函數機制:如果通過引用或指標訪問虛函數,編譯時間就不會確定具體的調用函數,只有在運行時才根據具體的物件類型,調用其相應的函數實現。注意:虛函數的“動態綁定虛特性”必須通過基類的指標揮著基類的引用才能夠表現出來,通過對象調用虛函數不能進行動態綁定。

【C++】多態性(函數重載與虛函數)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.