#include<iostream>
using namespace std;
class derivedClass;
class baseClass
{
public:
int objID;
derivedClass* dcObjPtr;
baseClass()
{
cout << "(1) Default constructor" << objID << endl;
}
baseClass(int ID);
};
class derivedClass : public baseClass
{
public:
derivedClass()
{}
derivedClass(int ID) : baseClass(ID)
{
cout << "(4) Constructing derived object with ID: " << objID << endl;
}
};
baseClass::baseClass(int ID)
{
objID = ID;
dcObjPtr = new derivedClass(1);
cout << "(2) Constructing base object with ID: " << objID << endl;
}
int main(int argc, char** argv)
{
derivedClass dcObj(1);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBkZXJpdmVkQ2xhc3M7CmNsYXNzIGJhc2VDbGFzcwp7CnB1YmxpYzoKICAgIGludCBvYmpJRDsKICAgIGRlcml2ZWRDbGFzcyogZGNPYmpQdHI7CgogICAgYmFzZUNsYXNzKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICIoMSkgRGVmYXVsdCBjb25zdHJ1Y3RvciIgPDwgb2JqSUQgPDwgZW5kbDsKICAgIH0KCiAgICBiYXNlQ2xhc3MoaW50IElEKTsKCn07CgpjbGFzcyBkZXJpdmVkQ2xhc3MgOiBwdWJsaWMgYmFzZUNsYXNzCnsKcHVibGljOgogICAgZGVyaXZlZENsYXNzKCkKICAgIHt9CgogICAgZGVyaXZlZENsYXNzKGludCBJRCkgOiBiYXNlQ2xhc3MoSUQpCiAgICB7CiAgICAgICAgY291dCA8PCAiKDQpIENvbnN0cnVjdGluZyBkZXJpdmVkIG9iamVjdCB3aXRoIElEOiAiIDw8IG9iaklEIDw8IGVuZGw7CiAgICB9Cn07CgpiYXNlQ2xhc3M6OmJhc2VDbGFzcyhpbnQgSUQpCnsKICAgIG9iaklEID0gSUQ7CiAgICBkY09ialB0ciA9IG5ldyBkZXJpdmVkQ2xhc3MoMSk7CiAgICBjb3V0IDw8ICIoMikgQ29uc3RydWN0aW5nIGJhc2Ugb2JqZWN0IHdpdGggSUQ6ICIgPDwgb2JqSUQgPDwgZW5kbDsKfQogICAgCmludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKewogICAgZGVyaXZlZENsYXNzIGRjT2JqKDEpOwoKICAgIHJldHVybiAwOwp9ICAgIA==