If you enable the Hidden virtual functions setting, the compiler generates a warning if you declare a non-virtual member function in a subclass that hides an inherited virtual function in a superclass. One function hides another if it has the same name but a different argument type. An example of hidden virtual functions:
class A {
public:
virtual void f(int);
virtual void g(int);
};
class B: public A {
public:
void f(char); // WARNING: Hides A::f(int)
virtual void g(int); // OK: Overrides A::g(int)
};
The Hidden virtual functions setting corresponds to the pragma warn_hidevirtual. To check this setting, use __option (warn_hidevirtual).
See Checking Option Settings for information on how to use this directive.