有時,我正在處理相對複雜的問題(並且有時會混淆 - 以最初編寫它的人的佈局方式)抽象類。從它繼承時,我有時會遇到cannot instantiate abstract class
,大部分時間是因爲我忘記聲明&實現了一個純虛函數。我可以從編譯器獲得更多關於它找到的函數的信息,我沒有實現它而不是尋找它?有關「無法實例化抽象類」的更多信息
2
A
回答
4
您是否使用Visual Studio?如果是,則從錯誤列表選項卡切換到輸出選項卡。會有這樣的:
main.cpp(8): error C2259: 'foo' : cannot instantiate abstract class
due to following members:
'void Foo::method(char)' : is abstract
2
每當你遇到的消息,然後立即意味着你還沒有定義在派生類純virtual
功能,並希望創建它的一個實例。如果你使用的是一個好的編譯器,那麼我敢肯定,它表明哪個純粹的virtual
函數你沒有實現。至少,GCC表明這一點。
在這裏看到的錯誤消息:http://www.ideone.com/83iDk
prog.cpp: In function ‘int main()’:
prog.cpp:11: error: cannot declare variable ‘a’ to be of abstract type ‘A’
prog.cpp:6: note: because the following virtual functions are pure within ‘A’:
prog.cpp:7: note: virtual void A::f()
那是綽綽有餘的,你沒有實現A::f()
。
+1
Visual Studio也指出了這一點(感謝Fanael指出它)。謝謝! (1) – Samaursa 2011-06-09 15:20:30
相關問題
- 1. 無法實例化抽象類
- 2. 實例化的抽象類
- 3. 'ExpandableListAdapter'是抽象的;無法實例化
- 4. 抽象類實例化
- 5. scala:抽象類實例化?
- 6. 無法創建抽象類的實例
- 7. 無法實例抽象類「base.CreditCard」
- 8. 沒有錯誤,而實例化抽象類,雖然抽象方法未實現
- 9. 無法實例化組件信息
- 10. 如何避免無法實例化抽象類的問題
- 11. Perl Gtk無法創建抽象(非實例化)類型`GtkBox'的實例
- 12. 抽象類中的實例化
- 13. neo4jphp:無法實例化抽象類Everyman \ Neo4j \ Transport
- 14. C++無法實例化抽象類錯誤
- 15. 無法在C++錯誤中實例化抽象類
- 16. 幫助錯誤C2259:無法實例化抽象類
- 17. C++,無法實例化抽象類錯誤
- 18. PHP:致命錯誤:無法實例化抽象類
- 19. NetSuite錯誤:CustomFieldRef是抽象類型,無法實例化
- 20. 抽象類實例
- 21. c#如何使實例化更抽象?
- 22. 實例化問題通過抽象類
- 23. C++不能實例化抽象類
- 24. 防止抽象類實例化
- 25. 動態實例化抽象子類
- 26. 如何實例化抽象類c#?
- 27. Proguard,Android和抽象類實例化
- 28. 更多實現或非抽象類的抽象類?
- 29. Newtonsoft.Json.JsonSerializationException:無法創建類型(抽象類)的實例
- 30. 無法實例化應用程序 - 無法獲取包信息
您是否使用Visual Studio?然後從錯誤列表選項卡切換到輸出。會有這樣的錯誤:'錯誤C2259:'foo':由於以下成員,無法實例化抽象類:[缺少純虛擬成員]' – Fanael 2011-06-09 15:16:20
@Fanael:正是我所要求的!我不知道輸出結果如何。如果你把這個作爲答案,我會檢查它。 – Samaursa 2011-06-09 15:17:58