C ++从基类复制构造派生类

时间:2017-10-09 13:56:17

标签: c++ c++11 inheritance copy-constructor

我有一个几乎没有不同对象类的游戏,这些对象类都是从基类名称Gameobject派生的,如下所示:

class Gameobject{...}
class Block : public Gameobject{...}
class Wall  : public Gameobject{...}
class Raw   : public Gameobject{...}

在游戏的逻辑中,我使用实际的Block和Wall来管理某些部分,但是像Gameobject一样:

Gameobject* wall = new Wall();
Gameobject* block = new Block();

问题是我希望能够调用一个复制构造函数来复制一个对象,但是如果我调用那么就是

Gameobject* newObj = new Gameobject(ObjToCopy);

它将识别要复制的对象是否为wall / block / somethingelse并复制wall / block / somethingelse类中的数据并创建一个实际的wall / block / somethingelse对象。

如果这有帮助我在Gameobject类中有一个变量,它告诉我该对象的类是什么类的:

if (genericObject.category=="block"){
    /* cast is like a block and use it like that */
}else{
    /* do other checks */
}

0 个答案:

没有答案