簡體   English   中英

抽象類的繼承

[英]inheritance of abstract class

我有一個抽象的基類。 我正在從抽象基礎繼承一個新類,而我無法實例化一個對象。 編譯器告訴您的原因是

cannot allocate an object of abstract type

有什么辦法可以克服這個問題。

無法分配抽象類型的對象

這表明您尚未在派生類中實現所有 virtual函數。 因此,首先實現所有純虛函數,然后創建此類的實例。

您不能創建甚至只有一個 virtual函數的類實例!

請記住, 虛函數是指分配了零的函數( C ++ Virtual / Pure Virtual Explained ),如下所示:

class sample
{
public:
     virtual void f(); //virtual function
     virtual void g()=0; //pure virtual function
};

這里只有g()是純虛函數! 這使sample成為一個抽象類 ,如果派生類未定義g() ,它也將成為一個抽象類。 您無法創建任何此類的實例,因為它們都是抽象的!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM