Freigeben über


Compilerfehler C2688

'C2::fgrv': Kovariant gibt mit mehreren oder virtuellen Vererbungen zurück, die für Varargs-Funktionen nicht unterstützt werden

Bemerkungen

Kovariante Rückgabetypen werden in Visual C++ nicht unterstützt, wenn eine Funktion variable Argumente enthält.

Um diesen Fehler zu beheben, definieren Sie entweder Ihre Funktionen, sodass sie keine variablen Argumente verwenden oder die Rückgabewerte für alle virtuellen Funktionen gleich machen.

Beispiel

Im folgenden Beispiel wird C2688 generiert:

// C2688.cpp
struct G1 {};
struct G2 {};
struct G3 : G1, G2 {};
struct G4 {};
struct G5 {};
struct G6 : G4, G5 {};
struct G7 : G3, G6 {};

struct C1 {
   virtual G4& fgrv(int,...);
};

struct C2 : C1 {
   virtual G7& fgrv(int,...);   // C2688, does not return G4&
};