我的程序在以下行出现错误:
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 个参数
但是现在我的引擎在调用孩子的函数时坏了。我怎样才能解决这个问题?