#include <iostream>
using namespace std;
class Base {
public:
Base() {}
};
class Derived : public Base {
public:
Derived() {}
};
void DoSomething(Base b) {
cout << "Do Something to Base" << endl;
}
void DoSomething(Derived d) {
cout << "Do Something to Derived" << endl;
}
int main() {
Derived d = Derived();
DoSomething(d);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQmFzZSB7CiAgcHVibGljOgogICAgICBCYXNlKCkge30KfTsKCmNsYXNzIERlcml2ZWQgOiBwdWJsaWMgQmFzZSB7CiAgcHVibGljOgogICAgICBEZXJpdmVkKCkge30KfTsKCnZvaWQgRG9Tb21ldGhpbmcoQmFzZSBiKSB7CiAgICBjb3V0IDw8ICJEbyBTb21ldGhpbmcgdG8gQmFzZSIgPDwgZW5kbDsKfQoKdm9pZCBEb1NvbWV0aGluZyhEZXJpdmVkIGQpIHsKICAgIGNvdXQgPDwgIkRvIFNvbWV0aGluZyB0byBEZXJpdmVkIiA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKCURlcml2ZWQgZCA9IERlcml2ZWQoKTsKICAgIERvU29tZXRoaW5nKGQpOwoJcmV0dXJuIDA7Cn0=