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?