Condividi tramite


Errore del compilatore C2688

'C2::fgrv': covariante restituisce con ereditarietà multipla o virtuale non supportata per le funzioni varargs

I tipi restituiti Covarianti non sono supportati in Visual C++ quando una funzione contiene argomenti di variabile.

Per risolvere questo errore, definire le funzioni in modo che non usino argomenti di variabile o rendere i valori restituiti uguali per tutte le funzioni virtuali.

L'esempio seguente genera l'errore C2688:

// 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&
};