LINUX.ORG.RU

Вызов переопределенного метода через объект производного класса

 , , ,


1

2

Собственно ответ нашел (https://stackoverflow.com/a/6319619).

struct Base
{
    virtual int Foo()
    {
        return -1;
    }
};

struct Derived : public Base
{
    virtual int Foo()
    {
        return -2;
    }
};

int main(int argc, char* argv[])
{
    Base *x = new Derived;

    ASSERT(-2 == x->Foo());

    //syntax is trippy but it works
    ASSERT(-1 == x->Base::Foo());

    return 0;
}

Но интересно, такая форма описана в каком-нибудь стандарте?

★★★★★

Но интересно, такая форма описана в каком-нибудь стандарте?

Ты правда думаешь что нашёл что-то настолько экзотическое, что оно не описано в стандарте?

anonymous ()