抽象類別
不能實作。因為設計邏輯上屬於一個未完整的類別。
可以定義抽象方法但不能實作且必須為公開(public)。因為這部份是要開放給子類別複寫的。
可以繼承抽象類別,但是一樣不能實作抽象方法
繼承抽象類別的子類必須複寫父類的的抽象方法
在跑車的類別上增加了openDoor()這個方法,並回傳為側開。但是少數車種開門方法是上掀式的,難道又要將跑車類別改成抽象類別然後再各自實作嗎?這顯然有點因噎廢食,這時候可以使用虛擬 (virtual) 方法。
虛擬
方法必須實作。
虛擬方法中必須為公開(public)。因為允許子類別複寫。
子類別可以直接引用或選擇複寫(override)虛擬方法
Error:invalid new-expression of abstract class type
原因:
对抽象类进行了new操作,或派生类中未完全实现基类中定义的纯虚函数。
解决方法:
一般IDE会检查并提示基类中的哪些纯虚函数未实现,按提示将纯虚函数实现即可。
No comments:
Post a Comment