#include <iostream>
class Base {
public:
int num;
Base(int a = 100): num(a) {}
Base* base;
virtual void print() = 0;
};
class Derived : public Base {
public:
int bnum;
Derived(int b = 200): bnum(b) {}
virtual void print() { std::cout << bnum; }
};
int main() {
Derived a;
a.base = &a;
a.base->print();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQmFzZSB7CnB1YmxpYzoKICAgIGludCBudW07CiAgICBCYXNlKGludCBhID0gMTAwKTogbnVtKGEpIHt9CiAgICBCYXNlKiBiYXNlOwogICAgdmlydHVhbCB2b2lkIHByaW50KCkgPSAwOwp9OwoKY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBCYXNlIHsKcHVibGljOgogICAgaW50IGJudW07CiAgICBEZXJpdmVkKGludCBiID0gMjAwKTogYm51bShiKSB7fQogICAgdmlydHVhbCB2b2lkIHByaW50KCkgeyBzdGQ6OmNvdXQgPDwgYm51bTsgfQp9OwoKaW50IG1haW4oKSB7CiAgICBEZXJpdmVkIGE7CiAgICBhLmJhc2UgPSAmYTsKICAgIGEuYmFzZS0+cHJpbnQoKTsKfQ==