Intanto una precisazione. Mi era sfuggito un particolare non da poco ( che comunque non c'entra col tuo problema immediato).
Nell'operatore di assegnamento, prima di copiare gli elementi della lista, devi svuotare la lista componenti in cui devi copiare, altrimenti gli elementi di a.componenti vengono accodati a quelli presenti in componenti a causa della push_back().
basta un componenti.clear()
Per quanto riguarda il tuo problema:
S viene copiato prima o dopo l'inserimento dei componenti in a?
E se lo copi dopo che succede?
Il costruttore di copia, copia quello che trova non quello che vorresti avere.![]()

Rispondi quotando