只要我的前一个问题Overloaded assignment operator causes warning about recursion引发了新的问题,我就有充分的理由将其发布为新问题。 我的类Player中有一个引用类型的成员,并且我想要实现这个类的复制构造函数和赋值运算符(=)。 我必须提到的是,目的是使函数vector.erase正常工作,因为在我看来,否则它无法正常工作。 我使用向量: vector allPlayers; Player类的成员为:
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;
}
如果我想要实现赋值运算符,是否有必要避免使用引用作为类成员?那么 Map 成员又如何呢?最终应该如何实现赋值运算符?
我不知道的另一个极其重要的问题是:当我删除保存 Player 的 vector 的迭代器时,指针类成员指向的对象会发生什么情况?有什么帮助吗?