Пока новые проблемы растут из моего предыдущего вопроса Перегруженный оператор присваивания вызывает предупреждение о рекурсии, я был законно призван опубликовать его как новый. У меня есть ссылочный класс в моем классе 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;
}
Обязательно ли избегать использования ссылки в качестве члена класса, если я хочу реализовать оператор присваивания? Как насчет членов карты? Как я должен, наконец, реализовать оператор присваивания?
Еще одна важная проблема, о которой я не знаю, - это то, что происходит с объектами, указанными членами класса указателей, когда я стираю итератор вектора, удерживающего Player. Любая помощь?