[Android篇]cannot allocate an object of abstract type 'xxxxx' 錯誤

文章撰寫日期︰2013/03/19 00:02
cocos2dx使用版本︰v 2.0.4
cocosBuilder使用版本︰v 2.0 alpha 1

一、問題

沒有將父類的pure virtual method實作完成的NDK編譯錯誤畫面
今天在使用Android 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的編譯問題。

沒有留言 :

張貼留言