Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4, wyłączony) C4266

"function" : brak przesłonięcia dostępnego dla wirtualnej funkcji składowej z bazowego "type"; funkcja jest ukryta

Klasa pochodna nie przesłoniła wszystkich przeciążeń funkcji wirtualnej.

To ostrzeżenie jest domyślnie wyłączone. Aby uzyskać więcej informacji, zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone.

Poniższy przykład generuje 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);
};