私は現在、CameraとSolidObjectの親であるGameObjectという基本クラスを持っています。 SolidObjectの親プレーヤーとゲームマップ。何らかの理由で、私はGameMapのコンストラクタとデストラクタでvtableへの未定義の参照しか得ていません。ここにコードがあります(私はカメラやプレーヤーを含めません)。注:GameObjectとSolidObjectはWorld.hにあり、それらは小さく、接続する必要があるためです。私はこれらのクラスとGameMapに関連するものだけを含めます。非Qのコンストラクタとデストラクタのvtableへのundef ref
GameMapがSolidObjectではなくGameObjectから継承するように継承を切り替えましたが、それでも同じエラーが発生します。
World.h
class GameObject
{
public:
World* parent;
unsigned int objID;
virtual void step();
};
class SolidObject : public GameObject
{
public:
float xpos, ypos, zpos;
float xrot, yrot, zrot;
};
World.cpp
void GameObject::step()
{
}
GameMap.h
class GameMap : public GameObject
{
private:
WFOBJ model;
public:
GameMap(World* world, char* modelFile, char* textureFile);
~GameMap();
void step();
void setModel();
};
GameMap.cpp
void step()
{
}
GameMap::GameMap(World* world, char* modelFile, char* textureFile)
{
model.loadFile(modelFile, textureFile);
objID = world->addObject(this);
parent = world;
}
GameMap::~GameMap()
{
parent->removeObject(objID);
}