我正在使用复制构造函数获取MapObject并将其及其属性复制。
但是,该对象已经生成到游戏中,因此在构造上,我想从游戏中删除该对象。

本质上,我想做的是:

MapObject::MapObject(const MapObject& _mapobject)
{
    _mapobject.Derez();
    Rez();
}


如何在复制构造函数中完成此操作而不在const&上调用它?

编辑:
切换到智能指针向量可以完全解决此问题。

最佳答案

如果Derezconst,则只能调用它。

但是在我看来,设计似乎是错误的。为什么创建副本会将原版从游戏中删除?为什么类首先要负责从游戏中删除自身的实例?您为什么还要尝试复制游戏中已经存在的对象?

对我来说,这似乎比实际调用该方法更重要。

10-04 21:10