私のプログラムは次の行にバグがあります:
RAT_Entity* ecm = new RAT_EntityCustomModel();
ecm->Init(entities.size(), resourceManager->getCustomMesh(meshURL));
子エンティティを初期化する必要がありますが、代わりにエンジンが壊れます。
RAT_EntityおよびRAT_EntityCustomModelのヘッダーは次のとおりです。
#ifndef RAT_ENTITY_H
#define RAT_ENTITY_H
#include <iostream>
namespace RAT_ENGINE
{
class RAT_Entity
{
public:
RAT_Entity();
~RAT_Entity();
virtual void Init(int argID, void* argVoid);
virtual void CleanUp();
int getID() const;
virtual void PrintIO() const;
protected:
int id;
};
}
#endif
と
#ifndef RAT_ENTITYCUSTOMMODEL_H
#define RAT_ENTITYCUSTOMMODEL_H
#include "RAT_Entity.h"
#include "RAT_CustomMesh.h"
namespace RAT_ENGINE
{
class RAT_EntityCustomModel : public RAT_Entity
{
public:
RAT_EntityCustomModel();
~RAT_EntityCustomModel();
void Init(int argID, RAT_CustomMesh* argMesh);
void CleanUp();
RAT_CustomMesh* getMesh() const;
void PrintIO() const;
private:
RAT_CustomMesh* mesh;
};
}
#endif
ご覧のとおり、void RAT_EntityCustomModel::Init(int argID, RAT_CustomMesh* argMesh)
この関数はから継承していますvirtual void RAT_Entity::Init(int argID, void* argVoid)
。これを行う必要があったのは、そうしないと次のエラーが発生するためです。
1> e:\ rat_engine \ rat_engine \ rat_engine \ rat_entitymanager.cpp(34):エラーC2660:'RAT_ENGINE :: RAT_Entity :: Init':関数は2つの引数を取りません
しかし、子の関数を呼び出すと、エンジンが壊れます。どうすればこれを修正できますか?