0
A
回答
0
虛函數具有函數體。
重載可以通過Vartual函數完成。
它被定義爲:virtual int runFun();
而
純Vartual功能對函數體。
重載是必須在Pure Vartual功能。
它被定義爲:virtual int runFun()= 0;
2
純虛函數是一個可以聲明如下:
class Foo {
virtual void bar() = 0;
};
bar
是Foo
純虛擬成員。它沒有實現(因此= 0
),並且不能被調用。從Foo
繼承的任何類必須爲提供bar
的實現。這是唯一的區別:父類沒有純虛擬的實現,所以派生類必須提供它。 (這是一個例外,但很少使用。)
否則,它的工作方式完全相同。鑑於:
class Baz : public Foo {
virtual void bar() {}
};
的Baz
任何實例都可以與Foo*
類型的指針進行訪問和Baz::bar
將被調用。如果Foo::bar
是純虛擬的,則不能實例化Foo
,並且對Foo::bar
的調用將會出錯。如果Foo::bar
是不純,然後提供給Foo::bar
實施,將被要求將呼籲Baz
實例Foo
和Baz::bar
情況下,即使是通過Foo*
。
(純虛也可以實現,這樣,例如,Baz::bar
可以調用Foo::bar
,但這種情況並不常見。)
相關問題
- 1. 虛擬功能
- 2. 虛擬功能
- 3. 兒童班的虛擬和非虛擬功能的區別
- 4. 覆蓋非虛擬功能和虛擬功能有什麼區別?
- 5. 虛擬功能與回調
- 6. Overriden虛擬功能
- 7. C++虛擬功能
- 8. 覆蓋虛擬功能到非虛擬功能可以嗎?
- 9. 虛擬功能常量vs虛擬功能非常量
- 10. 虛擬功能的超載
- 11. 要求父虛擬功能
- 12. 優勢虛擬功能
- 13. 虛擬功能和繞行
- 14. 虛擬功能錯誤?
- 15. 虛擬功能問題
- 16. 虛擬功能故障
- 17. 虛擬功能輸出?
- 18. 功能爲虛擬變量
- 19. C++虛擬(密封)功能
- 20. C++虛擬功能無法識別
- 21. 類的大小與虛擬功能
- 22. 虛擬功能不能正常工作
- 23. 單個虛擬桌面如何跟蹤新的虛擬功能?
- 24. 具有虛擬和非虛擬功能的unique_ptr :: get()函數
- 25. 非虛擬接口 - 如何調用正確的虛擬功能
- 26. 使用虛擬功能和重新定義之間的區別
- 27. 在c + +的虛擬功能的概念?
- 28. 帶空虛的虛擬方法和純虛擬方法有什麼區別?
- 29. 消除未使用的虛擬功能
- 30. 添加虛擬功能的問題