Поделиться через


Предупреждение компилятора (уровень 4) C4266

"функция" : нет доступного переопределения для виртуальной функции-члена из базового типа "тип"; функция скрыта

Производный класс не переопределяет все перегрузки виртуальной функции.

Данное предупреждение по умолчанию отключено. Дополнительные сведения см. в разделе Compiler Warnings That Are Off by Default.

Следующий пример приводит к возникновению предупреждения 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

Возможное решение:

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