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é.