2012-05-15 26 views
0

我想创建一个下列类的一个实例:试图创建类的实例会引发虚函数表错误XCode中

#ifndef Sik_GameEntity_h 
#define Sik_GameEntity_h 

class GameEntity { 
    public: 

     ~GameEntity(){}; 
     void setup(); 
     void update(); 
     void draw(); 
     void clear(); 

    protected: 

    private: 
}; 


#endif 

所有这些方法(减去解构)在我的.cpp跃然纸上文件。

for (int i = 0; i < nEntities; i++) 
{ 
    GameEntity ent; 
    ent.setup(); 
    entities.push_back(ent); 
} 

我正在创建一个实例并将其插入到游戏实体对象的向量中。当我创建一个实例,从我的XCode出现以下错误:]

Undefined symbols for architecture i386: 
    "GameEntity::GameEntity()", referenced from: 
     appCore::setup() in appCore.o 
    "GameEntity::~GameEntity()", referenced from: 
     appCore::setup() in appCore.o 
     std::vector<GameEntity, std::allocator<GameEntity> >::_M_insert_aux(__gnu_cxx::__normal_iterator<GameEntity*, std::vector<GameEntity, std::allocator<GameEntity> > >, GameEntity const&) in appCore.o 
     void std::_Destroy<GameEntity>(GameEntity*) in appCore.o 
    "vtable for GameEntity", referenced from: 
     GameEntity::GameEntity(GameEntity const&) in appCore.o 
    NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. 
ld: symbol(s) not found for architecture i386 

我已经尝试添加一个构造函数,但它并没有区别,我还是收到了同样的错误。这显然是我在课堂上做错了吗?

编辑: 我忘了提及,我清理了我的构建。

+0

发表您的appcore ::设置()函数,并且它包括 – johnathon

+0

您需要发布的拷贝构造函数。 – Puppy

回答

0

以下NOTE和error表示您试图在您的cpp文件而不是头文件中内联构造函数或设置方法。删除所有在线的关键字在你的CPP文件

NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. 
ld: symbol(s) not found for architecture i386 
相关问题