Errore del compilatore C2534
'identifier': il costruttore non può restituire un valore
Un costruttore non può contenere un'istruzione return
con un'espressione (anche se l'espressione ha tipo void
). Ciò differisce dalla funzione regolare void-returning in cui è consentita un'espressione restituita di tipo void
. Tuttavia, l'uso dell'istruzione senza un'espressione return
è consentito per i primi risultati nel costruttore.
L'esempio seguente genera l'errore 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
}
};
È possibile correggere gli errori precedenti rimuovendo l'intera return
istruzione o omettendo l'espressione restituita se si desidera ottenere un risultato anticipato.