#include <iostream>
class A
{
public:
virtual void foo() = 0;
};
class B
{
public:
virtual void foo() = 0;
};
class C : public A, public B
{
public:
virtual void foo();
};
void C::foo() { std::cout<<"C::foo"<<std::endl; }
int main()
{
C c;
A* pa = &c;
B* pb = &c;
c.foo();
pa->foo();
pb->foo();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCmNsYXNzIEEKewpwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgZm9vKCkgPSAwOwp9OwogCmNsYXNzIEIKewpwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgZm9vKCkgPSAwOwp9OwogCmNsYXNzIEMgOiBwdWJsaWMgQSwgcHVibGljIEIKewpwdWJsaWM6CiAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7Cn07CiAKdm9pZCBDOjpmb28oKSAgICB7IHN0ZDo6Y291dDw8IkM6OmZvbyI8PHN0ZDo6ZW5kbDsgfQogCmludCBtYWluKCkKewogICAgQyBjOwogICAgQSogcGEgPSAmYzsKICAgIEIqIHBiID0gJmM7CiAKICAgIGMuZm9vKCk7CiAgICBwYS0+Zm9vKCk7CiAgICBwYi0+Zm9vKCk7Cn0=