c++ - 衍生類別中參數不同的同名函數可否宣告為虛函數
世界只因有你
世界只因有你 2017-06-10 09:48:57
0
1
1229

基底類別和衍生類別有同名函數時,無論參數個數相同或不同,子類別物件直接呼叫的總是衍生類別的那個同名函數,如果要呼叫基底類別的同名函數,需要藉助基類指標或引用。如果現在想實作用同一個呼叫形式,既可以呼叫衍生類別的函數實作版本,也可以呼叫基底類別的實作版本,則要藉助虛函數
但是,老師說只有函數原型完全相同的才能宣告為虛函數啊,那麼對於形參數或類型不同的同名函數,如何實現上面的函數呢?

世界只因有你
世界只因有你

全部回覆 (1)
学霸

你可以這樣定義然後在子類別裡按需要重新定義:

class Base { public: virtual void print(int) = 0; virtual void print(float) = 0; };

這個問題的根本在於C++如何找到函數,它必須知道函數的名字和參數,所以你必須把這兩樣都定義清楚了,回傳值倒是可以模糊一些,例如copy函數在子類別裡可以回傳子類別。

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!