Private virtual function overridden as public compiles and runs (bug?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following program compiles and runs - is it correct behavior? I
read §11.5 in the January 2012 working draft but couldn't reach a
conclusion.

class B
{
    virtual int f() { return 42; };
};

class D : public B
{
public:
    int f() { return 43; };
};

int main()
{
    D d;
    B * pb = &d;
    D * pd = &d;
    //pb->f(); // error: B::f() is private
    pd->f(); // OK: D::f() is public
}

Georger





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux