Condividi tramite


Avviso del compilatore (livello 4) C4266

'funzione': override non disponibile per la funzione membro virtuale dalla base 'tipo'. La funzione è nascosta

Una classe derivata non ha eseguito l'override di tutti gli overload di una funzione virtuale.

Per impostazione predefinita, questo avviso non è attivo. Per ulteriori informazioni, vedere Compiler Warnings That Are Off by Default.

Nell'esempio seguente viene generato l'errore C4266:

// C4266.cpp
// compile with: /W4 /c
#pragma warning (default : 4266)
class Engine {
public:
   virtual void OnException(int&,int);
   virtual void OnException(int&,int&,int);
};

class LocalBinding : private Engine {
   virtual void OnException(int&,int);
};   // C4266

Possibile soluzione:

// C4266b.cpp
// compile with: /W4 /c
#pragma warning (default : 4266)
class Engine {
public:
   virtual void OnException(int&,int);
   virtual void OnException(int&,int&,int);
};

class LocalBinding : private Engine {
   virtual void OnException(int&,int);
   virtual void OnException(int&, int&, int);
};