C++ Warning for Base Class Overrides?

Jonathan Wakely jwakely.gcc@gmail.com
Tue Aug 9 13:21:00 GMT 2011


On 9 August 2011 14:10, Jeffrey Walton wrote:
>>>> If you mean
>>>> overloads, -Woverloaded-virtual will warn about virtual functions
>>>> which are hidden by functions with the same name in a derived class.
>>>> There's no warning for non-virtual functions which are hidden.
>>> That's too bad. Itel's ICC caught the typos.
>>> http://software.intel.com/en-us/articles/cdiag1125/.
>>
>> G++ gives the same warning for the example on that page.
> Intersting. I did not get one from Ubuntu 10's version of g++ (4.4.3).
> I cleaned and then compiled twice to make sure.

$ cat > in.cc
class Base{
public :
    virtual void foo (float f){ }
};

class Derived : public Base {
public :
    void foo (char c) { }
};

$ g++ -Woverloaded-virtual in.cc -c
in.cc:3: warning: 'virtual void Base::foo(float)' was hidden
in.cc:8: warning:   by 'void Derived::foo(char)'
$
$ g++ -dumpversion
4.4.3



More information about the Gcc-help mailing list