#include<iostream>
struct test
{
virtual void print() { std::cout << "I'm the parent" << std::endl; }
};
struct derived : public test
{
virtual void print() { std::cout << "I'm the derived" << std::endl; }
};
int main()
{
test* a = new test;
test* b = new derived;
a->print();
b->print();
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CgpzdHJ1Y3QgdGVzdAogICAgewogICAgICAgIHZpcnR1YWwgdm9pZCBwcmludCgpIHsgc3RkOjpjb3V0IDw8ICJJJ20gdGhlIHBhcmVudCIgPDwgc3RkOjplbmRsOyB9CiAgICB9OwoKICAgIHN0cnVjdCBkZXJpdmVkIDogcHVibGljIHRlc3QKICAgIHsKICAgICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoKSB7IHN0ZDo6Y291dCA8PCAiSSdtIHRoZSBkZXJpdmVkIiA8PCBzdGQ6OmVuZGw7IH0KICAgIH07CgogICAgaW50IG1haW4oKQogICAgewogICAgICAgIHRlc3QqIGEgPSBuZXcgdGVzdDsKICAgICAgICB0ZXN0KiBiID0gbmV3IGRlcml2ZWQ7CgogICAgICAgIGEtPnByaW50KCk7CiAgICAgICAgYi0+cHJpbnQoKTsKCiAgICAgICAgcmV0dXJuIDA7CiAgICB9