#include <iostream>
class First
{
public:
First()
{
}
void Update(void)
{
A();
}
virtual void A(void)
{
std::cout << "First::A";
}
};
class Two : First
{
public:
Two () : First () {};
void A(void)
{
std::cout << "Two::A";
}
};
int main()
{
Two T;
Two *T2 = &T;
T2 -> A();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgpjbGFzcyBGaXJzdAp7CglwdWJsaWM6CgkJRmlyc3QoKSAKCQl7CgoJCX0KCQoJCXZvaWQgVXBkYXRlKHZvaWQpCgkJewoJCQlBKCk7CgkJfQoKCQl2aXJ0dWFsIHZvaWQgQSh2b2lkKQoJCXsKCQkJc3RkOjpjb3V0IDw8ICJGaXJzdDo6QSI7CgkJfQoKCQkKfTsKCmNsYXNzIFR3byA6IEZpcnN0CnsKCXB1YmxpYzoKCQlUd28gKCkgOiBGaXJzdCAoKSB7fTsKCQl2b2lkIEEodm9pZCkKCQl7CgkJCXN0ZDo6Y291dCA8PCAiVHdvOjpBIjsKCQl9Cn07CgppbnQgbWFpbigpCnsKCVR3byBUOwoJVHdvICpUMiA9ICZUOwoJCglUMiAtPiBBKCk7CglyZXR1cm4gMDsKfQ==