Erreur du compilateur C2534
'identifier' : le constructeur ne peut pas retourner une valeur
Un constructeur ne peut pas contenir d’instruction return
avec une expression (même si l’expression a un type void
). Cela diffère de la fonction de retour void standard où une expression de retour de type void
est autorisée. Toutefois, l’utilisation de l’instruction return
sans expression est autorisée pour les retours anticipés dans le constructeur.
L’exemple suivant génère l’erreur 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
}
};
Les erreurs précédentes peuvent être corrigées en supprimant l’instruction entière return
ou en omettant l’expression de retour si un retour anticipé est souhaité.