Erro do compilador C2652
'identifier' : construtor de cópia ilegal: o primeiro parâmetro não deve ser um 'identifier'
O primeiro parâmetro no construtor de cópia tem o mesmo tipo que a classe, a estrutura ou a união para a qual ele é definido. O primeiro parâmetro pode ser uma referência ao tipo, mas não o tipo em si.
O seguinte exemplo gera o erro C2651:
// C2652.cpp
// compile with: /c
class A {
A( A ); // C2652 takes an A
};
class B {
B( B& ); // OK, reference to B
};