#include <iostream>
class A
{
public:
virtual void foo() {}
};
class B
{
public:
virtual void bar() {}
};
class C : public A, public B {};
int main() {
C c;
C * pc = &c;
B * pb = pc;
A * pa = pc;
std::cout << "a:" << pa << std::endl
<< "b:" << pb << std::endl
<< "c:" << pc << std::endl;
std::cout << "c==b:" << (pc == pb) << std::endl;
std::cout << "c==a:" << (pc == pa) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQQp7CnB1YmxpYzoKCXZpcnR1YWwgdm9pZCBmb28oKSB7fQp9OwoKY2xhc3MgQgp7CnB1YmxpYzoKCXZpcnR1YWwgdm9pZCBiYXIoKSB7fQp9OwoKY2xhc3MgQyA6IHB1YmxpYyBBLCBwdWJsaWMgQiB7fTsKCmludCBtYWluKCkgewoJQyBjOwoJCglDICogcGMgPSAmYzsKCUIgKiBwYiA9IHBjOwoJQSAqIHBhID0gcGM7CgkKCXN0ZDo6Y291dCA8PCAiYToiIDw8IHBhIDw8IHN0ZDo6ZW5kbAoJICAgICAgICAgIDw8ICJiOiIgPDwgcGIgPDwgc3RkOjplbmRsCgkgICAgICAgICAgPDwgImM6IiA8PCBwYyA8PCBzdGQ6OmVuZGw7CgkgICAgICAgICAgCglzdGQ6OmNvdXQgPDwgImM9PWI6IiA8PCAocGMgPT0gcGIpIDw8IHN0ZDo6ZW5kbDsKCXN0ZDo6Y291dCA8PCAiYz09YToiIDw8IChwYyA9PSBwYSkgPDwgc3RkOjplbmRsOwoJCglyZXR1cm4gMDsKfQ==