[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: gcc -Woverloaded-virtual
From: Michael Pyne <michael.pyne () kdemail ! net>
Date: 2007-11-17 19:06:25
Message-ID: 200711171406.29228.michael.pyne () kdemail ! net
[Download RAW message or body]
On Saturday 17 November 2007, André Wöbbeking wrote:
> On Friday 16 November 2007, Allen Winter wrote:
> > -Woverloaded-virtual (C++ only)
> > Warn when a function declaration hides virtual functions
> > from a base class. For example, in:
> >
> > struct A {
> > virtual void f();
> > };
> >
> > struct B: public A {
> > void f(int);
> > };
> >
> > the "A" class version of "f" is hidden in "B", and code
> > like:
> >
> > B* b;
> > b->f();
> >
> > will fail to compile.
>
> It can be very handy but there're too many false positives, e.g. if
> virtual void A::f(int) also exists. IMO too many to make this a default
> option.
If virtual void A::f(int) exists then B::f() is still hidden, so the warning
still applies. I honestly didn't know the function hiding issue was really
this bad but it is.
If you want to make A::f() accessible in B you have to do something like:
struct B : public A {
using A::f;
void f(int) { ... }
};
Regards,
- Michael Pyne
["signature.asc" (application/pgp-signature)]
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic