Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4) C4266

"Funkcja": bez zastępowania dostępne dla funkcji członka wirtualnego z podstawowej "type"; funkcja jest ukryta

Klasa pochodna nie zastępują wszystkie przeciążenia funkcji wirtualnych.

To ostrzeżenie jest domyślnie wyłączona. Aby uzyskać więcej informacji, zobacz Domyślnie wyłączone ostrzeżenia kompilatora.

Poniższy przykład spowoduje wygenerowanie błędu 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

Możliwe rozwiązanie:

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