¿Por qué se llama aquí al Constructor de Copia en lugar del Constructor normal y al operador de asignación sobrecargado? [duplicar]
Posible duplicado:
¿Hay una diferencia en C ++ entre la inicialización de la copia y la inicialización directa?
Copiar constructores y operadores de asignación.
Tengo una clase C en la que he sobrecargado Normal, copia constructor y operador de asignación para imprimir un rastro de lo que se está llamando ..
Escribí las siguientes piezas de código para probar qué se llama cuando?
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
Esto parece desconcertarme ya que en este código, aunque estoy inicializando en el momento de la declaración, es a través del operador de asignación y no del constructor de copia. ¿Lo entiendo mal?