Compartilhar via


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.