#include <iostream>
struct A
{
void func() { std::cout << "Hello!\n"; }
};
struct B : public A
{
void func() { std::cout << "Goodbye!\n"; }
};
int main()
{
B b;
A *p = &b;
p->func();
b.func();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEEKewogICAgdm9pZCBmdW5jKCkgeyBzdGQ6OmNvdXQgPDwgIkhlbGxvIVxuIjsgfQp9OwoKc3RydWN0IEIgOiBwdWJsaWMgQQp7CiAgICB2b2lkIGZ1bmMoKSB7IHN0ZDo6Y291dCA8PCAiR29vZGJ5ZSFcbiI7IH0KfTsKCmludCBtYWluKCkKewogICAgQiBiOwogICAgQSAqcCA9ICZiOwoKICAgIHAtPmZ1bmMoKTsKICAgIGIuZnVuYygpOwp9