Effettivamente le cose stanno come dici, all'incirca.
Quando tu scrivi:
Viene invocato il costruttore di copia.codice:scimmie T = visu();
Invece con questo procedimento:
Prima T viene inizializzato ai valori di default richiamando il costruttore senza argomenti, quindi viene effettuata un'assegnazione. Per risolvere il problema devi ricorrere all'overload degli operatori.codice:scimmie T; T = visu();