我們是否必須在直接派生類中強制定義C++中的純虛函數?或者我們可以避免它,以便我們只能在具體的類中定義它?這是如何實現的?避免在立即派生類中定義C++中的純虛函數?
1
A
回答
4
沒有人強迫你執行純粹的virtual
函數,所以你不必這樣做。你的課只是抽象的。在派生類中,只需將聲明保留或重新聲明爲虛擬純。
struct Base
{
virtual void foo() = 0;
};
//this is OK, X is abstract
struct X : Base
{
};
//this is also OK, redundant, and Y is abstract
struct Y : Base
{
virtual void foo() = 0;
};
1
絕對沒有要求過定義在類中的任何純虛函數,直到你開始創建實際對象類的。
抽象類旨在用作其他類的基礎。抽象類層次結構可以是任意深度的,這意味着您不需要在直接後代中定義純虛擬方法。
1
如果有一些虛擬純方法沒有實現,那麼派生類就是抽象的。如果你想實例化它,你必須在某個派生類中實現該方法。
相關問題
- 1. 純虛函數派生類
- 2. C++:重寫從模板類派生的虛擬純函數
- 3. 使用純虛函數的boost python中的多個派生類
- 4. 錯誤模板派生類中的「純虛函數調用」
- 5. 派生類破壞期間的純虛函數的作用域 - 在C++中
- 6. 在派生類中定義函數
- 7. 私人虛函數在派生類中
- 8. 如何在C++中的抽象基類和派生類中定義基類的虛函數定義?
- 9. 如何避免在派生類中實現空構造函數?
- 10. 派生類中的虛函數命名
- 11. 具有模板派生類的基類純虛函數
- 12. 如何在派生類中實現純虛函數作爲另一個純虛函數?
- 13. 在非純虛函數中使用純虛函數的C++抽象類
- 14. 避免虛函數
- 15. C++ - 避免在類定義中定義的函數的隱式內聯
- 16. R6025純虛函數調用(從舊金山派生類::的InputStream)
- 17. 在派生類中聲明的非虛擬虛函數
- 18. C++虛函數,在派生類中聲明晉升爲公衆
- 19. 在C++中是否可以定義純虛函數?
- 20. 強制執行正確的虛擬函數定義在派生類中
- 21. 在類定義之外定義純虛函數
- 22. 純虛函數中的未定義引用C++
- 23. 如何訪問基類中的派生類純虛擬實現?
- 24. C++ - 純虛函數
- 25. C++純虛函數
- 26. 派生類中的虛擬限定符
- 27. 使用方法聲明純虛在派生類中
- 28. 避免使用派生類dynamic_cast(Cast派生類)
- 29. C++在派生類指針數組上調用虛函數
- 30. C++:通過基類中定義的函數指針派生函數調用
你可以試試它... –
另請參閱:http://stackoverflow.com/a/8931630/33732 –