¿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?

Respuestas a la pregunta(3)

Su respuesta a la pregunta