#include <iostream>
class A
{
public:
virtual void foo() = 0;
/* ... */
};
void A::foo()
{
std::cout << "A::foo()" << std::endl;
}
class B : public A
{
public:
virtual void foo();
};
void B::foo()
{
std::cout << "B::foo() - ";
A::foo();
}
int main()
{
B b;
b.foo();
b.A::foo();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQQp7CiAgcHVibGljOgogICAgdmlydHVhbCB2b2lkIGZvbygpID0gMDsKICAvKiAuLi4gKi8KfTsKIAp2b2lkIEE6OmZvbygpCnsKICBzdGQ6OmNvdXQgPDwgIkE6OmZvbygpIiA8PCBzdGQ6OmVuZGw7Cn0gCiAKY2xhc3MgQiA6IHB1YmxpYyBBCnsKICBwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7Cn07CiAKdm9pZCBCOjpmb28oKQp7CiAgc3RkOjpjb3V0IDw8ICJCOjpmb28oKSAtICI7CiAgQTo6Zm9vKCk7Cn0KIAppbnQgbWFpbigpCnsKICBCIGI7CiAKICBiLmZvbygpOwogCiAgYi5BOjpmb28oKTsKfQo=