基本クラス、2つの派生クラス、および派生オブジェクトを指す基本ポインターのコンテナーを持つentitymanagerクラスがあります。派生クラスのコピーコンストラクターを処理するための仮想クローンメソッドがベースにありますが、代入演算子のオーバーロードとスライスの防止に頭を悩ませているので、誰かがそれを手伝ってくれて、おそらくiveがどのように処理したかを確認してくださいentitymanagerコピーコンストラクター?大丈夫だと思います
class System
{
public:
virtual System* clone()=0;
};
class projectile :public System
{
public:
projectile* clone()
{
return new projectile(*this);
}
};
class player : public System
{
public:
player* clone()
{
return new player(*this);
}
};
class EntityManager
{
private:
vector<System*> theEntities;
public:
EntityManager(){}
EntityManager(EntityManager& other)
{
for (size_t i=0;i<other.theEntities.size();i++)
theEntities.push_back(other.theEntities[i]->clone());
}
void init()
{
projectile* aProjectile = new projectile;
player* aPlayer = new player;
theEntities.push_back(aProjectile);
theEntities.push_back(aPlayer);
}
};
int main (int argc, char * const argv[])
{
EntityManager originalManager;
originalManager.init();
EntityManager copyManager(originalManager);
return 0;
}