1. 程式人生 > >c++繼承父類的子類,如何呼叫父類的同名函式?

c++繼承父類的子類,如何呼叫父類的同名函式?

子類呼叫父類的同名函式:

  1. 子類和父類返回值引數相同,函式名相同,有virtual關鍵字,則由物件的型別決定呼叫哪個函式。

  2. 子類和父類只要函式名相同,沒有virtual關鍵字,則子類的物件沒有辦法呼叫到父類的同名函式,父類的同名函式被隱藏了,也可以強制呼叫父類的同名函式class::funtion_name或者如果在子類的定義中,使用using即可將子類的同名函式暴露,然後可直接呼叫。

  3. 子類和父類引數不同,函式名相同,有virtual關鍵字,則不存在多型性,子類的物件沒有辦法呼叫到父類的同名函式,父類的同名函式被隱藏了,也可以強制呼叫父類的同名函式class::funtion_name。

  4. 子類和父類返回值不同,引數相同,函式名相同,有virtual關鍵字,則編譯出錯error C2555編譯器不允許函式名引數相同返回值不同的函式過載。