這個問題是相似的,但大約是從類中調用該函數:Can I call a base class's virtual function if I'm overriding it?有沒有辦法在C++的類外調用一個基本函數?
在這種情況下,你會指定Base::function()
代替function()
,這將調用重寫的定義。
但是有沒有辦法在課堂之外做到這一點?我的類沒有定義拷貝構造函數,所以我無法弄清楚如何投基類:
Base(derived_object).function()
是在這裏做投& derived_object
爲Base*
,然後調用->function()
適當的事情嗎?
感謝您的洞察力。
雖然我不確定虛擬函數的重點在於它們是在運行時解析的,但與對象的編譯時間類型無關,'static_cast'可能會起作用,'dynamic_cast'肯定不起作用。 –
你爲什麼想要?如果函數是派生類和基類的一部分,那麼在調用基類時可能會出錯。解決這個問題的更好的方法是在基類中創建一個獨立的函數,以便派生類被調用,並讓基類調用functoion本身。 –
請在下面看到@Omnifarious的評論。 – user