Dlaczego Copy Constructor jest tu nazywany zamiast normalnego Constructora i przeciążonego operatora przypisania? [duplikować]

Możliwy duplikat:
Czy istnieje różnica w C ++ między inicjalizacją kopiowania a bezpośrednią inicjalizacją?
Kopiowanie konstruktorów i operatorów przydzielania

Mam klasę C, w której przeciążyłem Normala, konstruktora kopii i operatora przypisania, aby wydrukować ślad tego, co się nazywa.

Napisałem następujące fragmenty kodu, aby przetestować, co jest nazywane kiedy?

C c1;                --> Normal Constuctor .. // understood Fine

C c2;
c2 = c1;             --> Normal constructor + assignment operator .. //understood Fine

C * c3 = new C(C1)   --> Copy constructor  // Understood Fine

C c4 = c1          --> copy constructor // Not Able to understand

Wydaje się, że mnie to zaskakuje, ponieważ w tym kodzie inicjalizuję w momencie deklaracji, to poprzez operatora przypisania, a nie konstruktora kopii. Czy rozumiem to źle?

questionAnswers(3)

yourAnswerToTheQuestion