#include <iostream>
using namespace std;
class Parent
{
public:
Parent(int childId): id(childId) {}
void printId() {cout << id << endl;}
protected:
int id;
};
class Child1: public Parent
{
public:
Child1(): Parent(42) {}
void foo() {cout << "My id is " << id << endl;}
};
class Child2: public Parent
{
public:
Child2(): Parent(5566) {}
void bar() {cout << id << " is the best!" << endl;}
};
int main() {
Child1 c1;
c1.printId();
c1.foo();
Child2 c2;
c2.printId();
c2.bar();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUGFyZW50CnsKcHVibGljOgoJUGFyZW50KGludCBjaGlsZElkKTogaWQoY2hpbGRJZCkge30KCXZvaWQgcHJpbnRJZCgpIHtjb3V0IDw8IGlkIDw8IGVuZGw7fQpwcm90ZWN0ZWQ6CglpbnQgaWQ7Cn07CgpjbGFzcyBDaGlsZDE6IHB1YmxpYyBQYXJlbnQKewpwdWJsaWM6CglDaGlsZDEoKTogUGFyZW50KDQyKSB7fQoJdm9pZCBmb28oKSB7Y291dCA8PCAiTXkgaWQgaXMgIiA8PCBpZCA8PCBlbmRsO30KfTsKCmNsYXNzIENoaWxkMjogcHVibGljIFBhcmVudAp7CnB1YmxpYzoKCUNoaWxkMigpOiBQYXJlbnQoNTU2Nikge30KCXZvaWQgYmFyKCkge2NvdXQgPDwgaWQgPDwgIiBpcyB0aGUgYmVzdCEiIDw8IGVuZGw7fQp9OwoKaW50IG1haW4oKSB7CglDaGlsZDEgYzE7CgljMS5wcmludElkKCk7CgljMS5mb28oKTsKCQoJQ2hpbGQyIGMyOwoJYzIucHJpbnRJZCgpOwoJYzIuYmFyKCk7CglyZXR1cm4gMDsKfQo=