Ho provato a fare i ldebug ed effettivamente viene invocato il costruttore a zero parametri di B quando chiami la funzione di copia di D. Pero il tuo costruttore di copia nn mi sembra proprio completo.
D::D(const D& b1){
n = b1.n;
s = new char[strlen(b1.s)+1];
strcpy(s, b1.s);
q = new char[strlen(b1.q)+1];
strcpy(q, b1.q);
cout<<"copio derivata\n";
}
L'output i nquesto caso diventa
Costruttore base
costruttore derivata
les 0 leqq
copio derivata
les 0 leqq
(ho fatto stampare d ed m ...m è identico a d ora)

Rispondi quotando