我正在使用复制构造函数获取MapObject
并将其及其属性复制。
但是,该对象已经生成到游戏中,因此在构造上,我想从游戏中删除该对象。
本质上,我想做的是:
MapObject::MapObject(const MapObject& _mapobject)
{
_mapobject.Derez();
Rez();
}
如何在复制构造函数中完成此操作而不在
const&
上调用它?编辑:
切换到智能指针向量可以完全解决此问题。
最佳答案
如果Derez
是const
,则只能调用它。
但是在我看来,设计似乎是错误的。为什么创建副本会将原版从游戏中删除?为什么类首先要负责从游戏中删除自身的实例?您为什么还要尝试复制游戏中已经存在的对象?
对我来说,这似乎比实际调用该方法更重要。