Erro do compilador C2534
'identifier' : o construtor não pode retornar um valor
Um construtor não pode conter uma instrução com uma return
expressão (mesmo que a expressão tenha tipo void
). Isso difere da função de retorno de vazio regular, onde uma expressão de retorno do tipo void
é permitida. No entanto, o uso da return
instrução sem uma expressão é permitido para retornos antecipados no construtor.
O seguinte exemplo gera o erro C2534:
// C2534.cpp
// compile with: /c
void void_func() {}
class A {
public:
int i;
A() {
return i; // C2534
return 123; // C2534
return (void)0; // C2534
return void_func(); // C2534
return; // OK
}
};
Os erros anteriores podem ser corrigidos removendo a instrução inteira return
ou omitindo a expressão return se um retorno antecipado for desejado.