2014-02-18 32 views
-1

我知道有幾種不同的方法可以在C++中實現多態。通過使用抽象類 通過繼承(通過使用指針的基類) 什麼是在C++中實現多態的不同方法

    • 通過使用虛擬函數
    • 我知道的3種方法可以做到這

    在關於該主題的技術討論中,我被告知我錯過了一些東西,並且被掛起......因此我在這裏問了問題。

    是否有另一種方式在C++到這個或是我說錯了?

  • +0

    這些並不是真正不同的方法。最後,您將使用指向基類的指針... –

    +1

    注意:他們可能對靜態多態性感興趣。 –

    +1

    你只討論了運行時多態性,也許我們可以在count中使用編譯時多態性,如模板和函數重載 – michaeltang

    回答

    2

    你的三種方式其實只是一個:基類是否爲 abstract是一個實現細節;您需要虛擬 函數,這些函數可以在派生類中重寫。

    除此之外:函數重載和模板都提供了一種多態的形式,儘管它在編譯時解析爲 ,而不是運行時。對於這個問題,你可以在頭文件中定義一個類 ,並根據編譯時間開關提供幾種不同的實現。 這也是一種多態的形式。 (這通常是爲 與系統有關的代碼完成的,多態性被解析爲你編譯的系統的一個函數。)

    0

    我認爲你的討論與不同類型的多態性有關。

    1. 編譯時多態 - 例如:函數重載,運算符重載。
    2. 運行時多態 - Ex:繼承+虛函數+基類指針。
    相關問題