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

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

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

全部回覆(1)
学霸

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

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

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

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