#include <iostream>
using namespace std;
class A
{
public :
A( ) { cout << "I am in the A constructor " << endl; }
~A( ) { cout << "I am In the A destructor " << endl; }
} ;
class AX
{
public :
AX( ) { cout << "I am in the AX constructor" << endl; }
~AX( ) { cout << "I am in the AX destructor" << endl; }
AX( int x) { cout << "I am in AX param constructor" << endl; }
} ;
class AXX
{
public :
AXX( ) { cout << "I amin the AXX constructor" << endl; }
~AXX( ) { cout << "I am in the AXX destructor " << endl; }
AXX( int x)
{
cout << "I am in the AXX param constructor" << endl;
}
} ;
class B : public A
{
AX ax;
AXX axx;
public :
B( ) : axx( 6 ) { cout << "I amin B constructor" << endl; }
~B( ) { cout << "I am in the B destrcuctor " << endl; }
} ;
class C : public B
{
AXX axx;
AX ax;
public :
C( ) : ax( 5 ) ,axx( 6 ) { cout << "I am in c constructor" << endl; }
~C( ) { cout << "I am in the c destructor" << endl; }
} ;
int main( ) {
// your code goes here
C c1;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQQp7CiAgICBwdWJsaWM6CiAgICBBKCl7Y291dCA8PCAiSSBhbSBpbiB0aGUgQSBjb25zdHJ1Y3RvciAiIDw8IGVuZGw7fQogICAgfkEoKXtjb3V0IDw8ICJJIGFtIEluIHRoZSBBIGRlc3RydWN0b3IgIjw8IGVuZGw7fQp9OwoKY2xhc3MgQVgKewogICAgcHVibGljOgogICAgQVgoKXtjb3V0PDwiSSBhbSBpbiB0aGUgQVggY29uc3RydWN0b3IiIDw8IGVuZGw7fQogICAgfkFYKCl7Y291dCA8PCJJIGFtIGluIHRoZSBBWCBkZXN0cnVjdG9yIiA8PCBlbmRsO30KICAgIEFYKGludCB4KXtjb3V0PDwiSSBhbSBpbiBBWCBwYXJhbSBjb25zdHJ1Y3RvciI8PCBlbmRsO30KCn07CmNsYXNzIEFYWAp7CiAgICBwdWJsaWM6CiAgICBBWFgoKXtjb3V0IDw8ICJJIGFtaW4gdGhlIEFYWCBjb25zdHJ1Y3RvciI8PGVuZGw7fQogICAgfkFYWCgpe2NvdXQgPDwgIkkgYW0gaW4gdGhlIEFYWCBkZXN0cnVjdG9yICI8PCBlbmRsO30KICAgIEFYWChpbnQgeCkKICAgIHsKICAgICAgICBjb3V0IDw8IkkgYW0gaW4gdGhlIEFYWCBwYXJhbSBjb25zdHJ1Y3RvciIgPDwgZW5kbDsKICAgIH0KfTsKIGNsYXNzIEIgOiBwdWJsaWMgQQp7CiAgICAgQVggYXg7CiAgICAgQVhYIGF4eDsKICAgIHB1YmxpYzoKICAgICBCKCk6YXh4KDYpe2NvdXQgPDwiSSBhbWluIEIgY29uc3RydWN0b3IiPDwgZW5kbDt9CiAgICAgfkIoKXtjb3V0IDw8ICJJIGFtIGluICB0aGUgQiBkZXN0cmN1Y3RvciAiPDwgZW5kbDt9CiB9OwogY2xhc3MgQyA6IHB1YmxpYyBCCiB7CiAgICAgQVhYIGF4eDsKICAgICBBWCBheDsKICAgICBwdWJsaWMgOiAKICAgICBDKCkgOiBheCg1KSxheHgoNikge2NvdXQgPDwgIkkgYW0gaW4gYyBjb25zdHJ1Y3RvciIgPDwgZW5kbDt9CiAgICAgICAgICB+Qygpe2NvdXQgPDwgIkkgYW0gaW4gdGhlIGMgZGVzdHJ1Y3RvciIgPDwgZW5kbDt9CiB9OwppbnQgbWFpbigpIHsKICAgIC8vIHlvdXIgY29kZSBnb2VzIGhlcmUKICAgIEMgYzE7CiAgICByZXR1cm4gMDsKfQ==