Advertencia del compilador (nivel 4) C4266
Actualización: noviembre 2007
Mensaje de error
'función': no hay un reemplazo disponible para la función miembro virtual de la base 'tipo'; la función está oculta
'function' : no override available for virtual member function from base 'type'; function is hidden
Una clase derivada no reemplazó todas las sobrecargas de una función virtual.
De forma predeterminada, esta advertencia está desactivada. Vea Compiler Warnings That Are Off by Default para obtener más información.
El ejemplo siguiente genera el error 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
Posible solución:
// 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);
};