Dato il seguente costruttore di copia:
Libretto& Libretto::operator = (const Libretto& l){
if (this != &l){
if (nVoci != l.nVoci){
delete [] vett;
nVoci = l.nVoci;
vett = new riga[nVoci];
}
quanteVoci = l.quanteVoci;
for(int i = 0; i < quanteVoci; i++)
vett[i] = l.vett[i];
}
return *this;
}
Noto che viene gestito il caso dove il puntatore dell'istanza di classe può essere uguale a quello dell'argomento che è un riferimento della classe ed immagino che quel caso si possa avere se p.e. se nel main facessi un assegnamento del tipo
l=l dove
l è un oggetto di classe Libretto.
Il valore di ritorno non mi torna, se non sbaglio il valore di ritorno di un assegnamento coincide con quello a destra dell'uguale ma in questo caso non capisco perchè viene ritornato this*, forse non sarebbe stato più logico 'l' ?
Spero di essermi spiegato bene.