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.