讓f1
成爲c
類的虛擬非抽象方法,f2
是類c
的方法。
也讓c_derived
成爲基類c
的派生類。
假設在c_derived
中覆蓋f1
。我怎樣才能調用方法f1
(覆蓋)c_derived
- 從方法f2
在c
?
可能的解決方法。將函數指針參數添加到c::f2
參數列表中,創建c::f2
的包裝c_derived::w
,並將函數指針c_derived::f1
從包裝c_derived::w
傳遞到c::f2
。
有沒有,而是一個合理的方式來做到這一點?C++ - 從方法基類中調用派生類中的重寫方法
0
A
回答
2
儘管Luchian Grigore給出了很好的答案,但我想指出這個想法是template method pattern背後的一個觀點。
該模式讓派生類決定如何完成算法實現,或者通過使用純虛擬方法提供虛擬方法形式的默認解決方案或完全不提供解決方案。
在上面提到這兩種情況下,所述f2
構件調用右實施f1
構件的,因爲它遵循:
f1();
知道了溶液中的一種的名稱通常施加是有幫助的。
3
相關問題
- 1. C++無法從派生類中調用基類方法
- 2. C++如何從基類中調用派生類中的方法
- 3. 調用重寫的方法在派生類的基類
- 4. 從派生類中調用C#基類擴展方法?
- 5. 派生類的方法從基類調用方法
- 6. 在C#中如何調用派生類實例中已在派生類中重寫的基類方法
- 7. 無法從派生類中調用基類方法
- 8. 如何從派生類方法調用基類方法?
- 9. 從靜態基類方法調用靜態派生類方法
- 10. 從派生類方法調用基類方法
- 11. 重寫基類的常量方法從派生類
- 12. C++調用派生類中基類的模板方法
- 13. 如果派生類重寫方法,爲什麼調用基類方法?
- 14. Python的超:調用它包含由派生類中重寫另一個基類方法的基類方法
- 15. C++如何從多個派生類調用基類方法?
- 16. 如何從C++派生類調用基類方法?
- 17. 在派生類的方法中使用基類的方法
- 18. 哪個基類調用派生重寫方法?
- 19. 的Java:調用從第二派生類的基類方法
- 20. 爲什麼調用基類方法代替派生類方法?
- 21. C++繼承:派生類指向基類調用Derived類方法
- 22. C++ - 基類指針,方法指針,引用派生類,方法?
- 23. 從派生/基類的對象中調用抽象方法
- 24. CRTP - 如何從派生類調用基類的實現方法?
- 25. 從基類調用派生類構面的方法嗎?
- 26. 從基類中不存在的基類中調用派生的方法
- 27. 調用從基類C#中的重寫方法
- 28. C#繼承防止基類的方法調用派生類的方法
- 29. 從子類中的重載方法調用基類方法
- 30. C++派生類方法調用
這是c#,我知道,但你有沒有嘗試過調用base.f1()? –
重複?其實,這不是你要找的機器人嗎? http://stackoverflow.com/questions/357307/how-to-call-a-parent-class-function-from-derived-class-function –
@GrahamBass從問題,他想從基地調用派生版本方法。所以只需一個簡單的電話就可以做到這一點... –