Share via


Error del compilador C2534

'identificador': el constructor no puede devolver un valor

Un constructor no puede contener una return instrucción con una expresión (incluso si la expresión tiene el tipo void). Esto difiere de la función de devolución de void normal en la que se permite una expresión de retorno de tipo void . Sin embargo, el uso de la return instrucción sin una expresión se permite para las devoluciones anticipadas en el constructor.

El ejemplo siguiente genera el error 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
   }
};

Los errores anteriores se pueden corregir quitando toda return la instrucción o omitiendo la expresión de retorno si se desea una devolución anticipada.