Compartir a través de


Advertencia del compilador (nivel 4, desactivado) C4266

"function": no hay ninguna invalidación disponible para la función miembro virtual de la base "type"; la función está oculta

Una clase derivada no invalidó todas las sobrecargas de una función virtual.

De forma predeterminada, esta advertencia está desactivada. Para obtener más información, consulte Compiler Warnings That Are Off by Default.

El ejemplo siguiente genera la advertencia 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);
};