以前の質問Overloaded assignment operator causes warning about recursionから新しい問題が増えている限り、私はこれを新しいものとして投稿することが正当化されました。クラスのPlayerに参照クラスメンバーがあり、このクラスのコピーコンストラクターと代入演算子(=)を実装したいと考えています。関数vector.eraseがうまく動作するのは、それがなければ、私が心配している限り正しく動作しないからです。私はベクトルを使う:vector allPlayers;クラスのプレーヤーのメンバーは以下のとおりです。参照クラスメンバーを持つ代入演算子
class Player
{
private:
int ID;
int pMoney;
int doubleIndicator;
int squarePosition;
Bank& bank;
string pName;
Square* capturedSquare;
multimap<string, PropertySquare*> squaresColBought;
multimap<string, House*> housesColBuilt;
}
それは私が代入演算子を実装する場合、クラスのメンバーとして参照の使用を避けるためには必須ですか?地図のメンバーはどうですか?私は最終的に代入演算子をどのように実装するべきですか?
私が気づいていない最も重要なもう一つの問題は、Playerを保持するベクトルのイテレータを消去すると、ポインタのクラスメンバが指すオブジェクトに何が起こるかです。どんな助け?
「別の問題」=>別の質問: – xtofl
代入演算子で銀行に何をしたいですか? – fredoverflow
FredOverflow:銀行をlhsオブジェクトにコピーするだけです – arjacsoh