#include <iostream>
class Base
{
protected:
int x;
std::string s;
public:
Base() = default;
Base(int x, std::string s)
{
this->x = x;
this->s = s;
std::cout << "Constuctor in Base Class Called" << std::endl;
}
int getX()
{
return x;
}
std::string getS()
{
return s;
}
~Base()
{
std::cout << "Destructor in Base Class" << std ::endl;
}
};
class Derived : public Base
{
private:
int z;
public:
Derived() = default;
Derived(int x, std::string s, int z) : Base(x, s)
{
this->z = z;
std::cout << "Constuctor in Derived Class Called" << std::endl;
}
int getZ()
{
return z;
}
void display()
{
std::cout << getX() << getS() << z << std::endl;
}
~Derived()
{
std::cout << "Destructor in Derived Class" << std::endl;
}
};
int main()
{
Derived d(5, "Hello", 55);
d.display();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQmFzZQp7CnByb3RlY3RlZDoKICAgIGludCB4OwogICAgc3RkOjpzdHJpbmcgczsKCnB1YmxpYzoKICAgIEJhc2UoKSA9IGRlZmF1bHQ7CiAgICBCYXNlKGludCB4LCBzdGQ6OnN0cmluZyBzKQogICAgewogICAgICAgIHRoaXMtPnggPSB4OwogICAgICAgIHRoaXMtPnMgPSBzOwoKICAgICAgICBzdGQ6OmNvdXQgPDwgIkNvbnN0dWN0b3IgaW4gQmFzZSBDbGFzcyBDYWxsZWQiIDw8IHN0ZDo6ZW5kbDsKICAgIH0KCiAgICBpbnQgZ2V0WCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHg7CiAgICB9CgogICAgc3RkOjpzdHJpbmcgZ2V0UygpCiAgICB7CiAgICAgICAgcmV0dXJuIHM7CiAgICB9CgogICAgfkJhc2UoKQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiRGVzdHJ1Y3RvciBpbiBCYXNlIENsYXNzIiA8PCBzdGQgOjplbmRsOwogICAgfQp9OwoKY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBCYXNlCnsKcHJpdmF0ZToKICAgIGludCB6OwoKcHVibGljOgogICAgRGVyaXZlZCgpID0gZGVmYXVsdDsKCiAgICBEZXJpdmVkKGludCB4LCBzdGQ6OnN0cmluZyBzLCBpbnQgeikgOiBCYXNlKHgsIHMpCiAgICB7CiAgICAgICAgdGhpcy0+eiA9IHo7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJDb25zdHVjdG9yIGluIERlcml2ZWQgQ2xhc3MgQ2FsbGVkIiA8PCBzdGQ6OmVuZGw7CiAgICB9CgogICAgaW50IGdldFooKQogICAgewogICAgICAgIHJldHVybiB6OwogICAgfQoKICAgIHZvaWQgZGlzcGxheSgpCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8IGdldFgoKSA8PCBnZXRTKCkgPDwgeiA8PCBzdGQ6OmVuZGw7CiAgICB9CgogICAgfkRlcml2ZWQoKQogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiRGVzdHJ1Y3RvciBpbiBEZXJpdmVkIENsYXNzIiA8PCBzdGQ6OmVuZGw7CiAgICB9Cn07CgppbnQgbWFpbigpCnsKCiAgICBEZXJpdmVkIGQoNSwgIkhlbGxvIiwgNTUpOwogICAgZC5kaXNwbGF5KCk7CiAgICByZXR1cm4gMDsKfQ==