我有一個抽象的基類。我從抽象基礎繼承了一個新類,我無法實例化對象。編譯器告訴其原因是抽象類的繼承
cannot allocate an object of abstract type
有什麼辦法來克服這一點。
我有一個抽象的基類。我從抽象基礎繼承了一個新類,我無法實例化對象。編譯器告訴其原因是抽象類的繼承
cannot allocate an object of abstract type
有什麼辦法來克服這一點。
不能分配抽象類型
的對象這表示你已經不是在派生類中實現所有純virtual
功能。所以首先實現所有的純虛函數,然後創建這個類的實例。
你不能創建類的實例,它甚至有一個單獨的純virtual
函數!
記住,純虛函數是那些零分配,如
class sample
{
public:
virtual void f(); //virtual function
virtual void g()=0; //pure virtual function
};
這裏只g()
是純虛函數!這使得sample
爲abstract class,如果派生類沒有定義g()
,它也將成爲一個抽象類。你不能創建任何這些類的實例,因爲它們都是抽象的!
...在某些派生類中尚未被覆蓋。 – 2011-02-13 18:31:27
謝謝你,@Nawaz。工作得很好。 – CHID 2011-02-13 18:33:02