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?