EC++: cosa torna operator=

Appunti tratti dalla rilettura di Effective C++ di Scott Meyers. Terzo blocco: Costruttori, distruttori e operatori di assegnamento.

(15) L'operatore assegnamento deve tornare un riferimento a *this.

Per mantenere la simmetria tra l'operatore assegnamento come definito per i tipi standard, occorre che i tipi definiti dall'utente mantengano lo stesso comportamento.

Per una classe C ci si aspetta che venga perciò dichiarato così:

C& C::operator=(const C&);

É spesso utile avere overload per l'operatore assegnamento, ad esempio la classe string, può accettare anche un char* come parametro. Anche in questi casi, comunque il valore tornato deve essere un riferimento a *this:

string& operator=(const string& rhs);
string& operator=(const char *rhs);

Nessun commento:

Posta un commento