2011-07-16 5 views
1

私は現在、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); 
} 

答えて

0

GameMap.cppのstep()の定義を見てください。クラス名がありません。それはvoid GameMap::step()と宣言されているはずです。エラーは実際にstepの定義が見つかりませんでしたが、as explained in the great C++ FAQ、このエラーが発生する可能性があります。

関連する問題