次のクラスのインスタンスを作成しようとしています。
#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
コンストラクターを追加しようとしましたが、違いはありませんでした。それでも同じエラーが発生しました。クラスで何が間違っているのかは明らかですか?
編集:私は言及するのを忘れました、私は自分のビルドをきれいにしました。