(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