Załóżmy że mamy jakąś klasę Foo z konstruktorami domyślnymi i jednym konstruktorem przyjmującym powiedzmy stringa;
A a = A("a");
Pierw jest wywoływany konstruktor przyjmujący stringa a potem konstruktor kopiujący;
A a = A();
Tutaj natomiast jest wywoływany konstruktor domyślny, brak wywołania konstruktora kopiującego.
Dlaczego raz konstruktor kopiujący jest wywoływany a raz nie?