Aviso do compilador (nível 4) C4266
função “”: não há substituição disponível para a função de membro virtual “tipo de base;” a função é ocultada
Uma classe derivada não substituiu todas as sobrecargas de uma função virtual.
Esse aviso é desativada por padrão. Consulte Avisos de compilador desativados por padrão para maiores informações.
O seguinte exemplo gera 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
Solução possível:
// 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);
};