Fintanto che nella mia domanda precedente Overloaded assignment operator causes warning about recursion emergono nuovi problemi, sono stato legittimamente invitato a pubblicarlo come nuovo. Ho un membro della classe di riferimento nella mia classe Player e voglio implementare il costruttore di copie e l'operatore di assegnazione (=) di questa classe. Devo dire che lo scopo è il buon funzionamento della funzione vector.erase perché senza di esso non funziona correttamente per quanto mi riguarda. Uso un vettore: vector allPlayers; I membri del giocatore di classe sono:Operatore di assegnazione con membro della classe di riferimento
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;
}
E 'obbligatorio evitare l'uso di riferimento, come membro della classe se voglio implementare l'operatore di assegnazione? E i membri della mappa? Come dovrei finalmente implementare l'operatore di assegnazione?
Un altro problema di estrema importanza di cui non sono a conoscenza è cosa succede agli oggetti puntati dai membri della classe dei puntatori quando cancello l'iteratore del vettore che contiene il Player. Qualsiasi aiuto?
"Un altro problema" => un'altra domanda per i principianti :) – xtofl
Cosa si desidera che l'operatore di assegnazione faccia con la Banca? – fredoverflow
FredOverflow: solo per copiare la banca sull'oggetto lhs – arjacsoh