Por que o Construtor de Cópias é chamado aqui em vez do Construtor normal e do operador de atribuição sobrecarregado? [duplicado]

Duplicata Possível:
Existe uma diferença em C ++ entre inicialização de cópia e inicialização direta?
Copiar construtores e operadores de atribuição

Eu tenho uma classe C na qual eu tenho sobrecarregado Normal, copiar o construtor e operador de atribuição para imprimir um traço do que está sendo chamado ..

Eu escrevi os seguintes trechos de código para testar o que está sendo chamado quando?

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

Isso parece me desconcertar desde que neste código que eu estou inicializando no momento da declaração, é através do operador de atribuição e não copiar construtor .. Estou entendendo errado?

questionAnswers(3)

yourAnswerToTheQuestion