文章撰寫日期︰2013/03/19 00:02 cocos2dx使用版本︰v 2.0.4 cocosBuilder使用版本︰v 2.0 alpha 1
一、問題
沒有將父類的pure virtual method實作完成的NDK編譯錯誤畫面 |
終端機顯示cannot allocate an object of abstract type 'xxxxx' 的錯誤,
導致編譯動作停止。
二、解決方法
此問題主要是程式裡使用了pure virtual method。在C++中,
父類別的標頭檔(.h)裡一旦有下列宣告
class A{ public: virtual void some_method_of_A() = 0; };那麼這就是一個pure virtual method。
目的是向跟他繼承的子類別說︰
『嘿!小子,來我們家要拜個碼頭!否則休想來我門下!』
子類別一定要將其函式實作,
實作方式要先在該子類別的標頭檔(.h)底下,
跟C++表示你會實作父類別的pure virtual method︰
class SubA : public A{ public: virtual void some_method_of_A(); }而body(.cpp)檔實作如下︰
#include "SubA.h" void SubA::some_method_of_A(){ //implements something... }
實作完成, 才能解決NDK的編譯問題。
沒有留言 :
張貼留言