Ciao ragazzi, nn riesco a spiegarmi una cosa e sicurmente qualcuno di voi può darmi una mano.
Ho creato una classe di nome Lobby
codice:class Lobby { friend ostream& operator<<(ostream& os, const Lobby& aLobby); public: Lobby(); ~Lobby(); Lobby(const Lobby& aLobby); Lobby& Lobby::operator=(const Lobby& aLobby); void AddPlayer(); void RemovePlayer(); void Clear(); private: Player* m_pHead; };
è praticamente una lista linkata di Player.
Come si può vedere dal codice ho sovraccaricato l'operatore di assegnamento e il costruttore di copia.
In seguito ho definito una funzione per il test dell'assegnamento
Non riesco a capire perchè se scrivocodice:void testAssignOp(Lobby& aLobby) { //Lobby lobby = aLobby; //ERRATO, richiama il Copy Constructor Lobby lobby; lobby = aLobby; //giusto richiama l'operatore = overloaded cout << "Lobby copiata:\n" << lobby; cout << endl; }
mi richiama il costruttore copiacodice:Lobby lobby = aLobby;
mentre se scrivo
mi richiama l'operatore di assegnamento sovraccaricato.codice:Lobby lobby; lobby = aLobby;
Illuminatemi vi prego![]()

Rispondi quotando