#include <iostream>
using namespace std;
struct a
{
virtual void Test() const {std::cout << 'a';}
void CallProc() {Test();}
};
struct b : public a
{
virtual void Test() const {std::cout << 'b';}
};
int main()
{
b* NewB = new b();
NewB->CallProc();
delete NewB;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGEKeyAKCXZpcnR1YWwgdm9pZCBUZXN0KCkgY29uc3Qge3N0ZDo6Y291dCA8PCAnYSc7fSAKCXZvaWQgQ2FsbFByb2MoKSB7VGVzdCgpO30KfTsKICAKICAKc3RydWN0IGIgOiBwdWJsaWMgYQp7IAoJdmlydHVhbCB2b2lkIFRlc3QoKSBjb25zdCB7c3RkOjpjb3V0IDw8ICdiJzt9Cn07CgppbnQgbWFpbigpCnsKCWIqIE5ld0IgPSBuZXcgYigpOyAKCU5ld0ItPkNhbGxQcm9jKCk7CglkZWxldGUgTmV3QjsKfQ==