#include <iostream>
using namespace std;
class A
{
public:
int x;
A(int i)
{
x= i;
cout<<"Constructor is Called "<<x<<endl;
}
~A()
{
cout<<"destructor is Called "<<x<<endl;
}
A(const A &a) : x(a.x)
{
cout<<"in copy constructor a.x = "<<a.x<<endl;
cout<<" x = "<<x<<endl;
}
};
A fun(int i)
{
cout<<"in Fun"<<endl;
A t(i+1);
return(t);
}
int main()
{
A *gg = new A(5);
A t = fun(2);
delete gg;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEEKewogICAgICBwdWJsaWM6CiAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgQShpbnQgaSkKICAgICAgICAgICB7CgogICAgICAgICAgICB4PSBpOwogICAgICAgICAgICBjb3V0PDwiQ29uc3RydWN0b3IgaXMgQ2FsbGVkICI8PHg8PGVuZGw7CiAgICAgICAgICB9CiAgICAgICAgICB+QSgpCiAgICAgICAgICAgewogICAgICAgICAgICBjb3V0PDwiZGVzdHJ1Y3RvciBpcyBDYWxsZWQgIjw8eDw8ZW5kbDsKICAgICAgICAgICB9CgogICAgICAgICAgQShjb25zdCBBICZhKSA6IHgoYS54KQogICAgICAgICAgewogICAgICAgICAgICAgICAgY291dDw8ImluIGNvcHkgY29uc3RydWN0b3IgYS54ID0gIjw8YS54PDxlbmRsOwogICAgICAgICAgICAgICAgY291dDw8IiB4ID0gIjw8eDw8ZW5kbDsKICAgICAgICAgIH0KICAgICAgfTsKCiAgICAgIEEgZnVuKGludCBpKQogICAgICB7CiAgICAgICAgICBjb3V0PDwiaW4gRnVuIjw8ZW5kbDsKICAgICAgICAgIEEgdChpKzEpOwogICAgICAgICAgcmV0dXJuKHQpOwogICAgICB9CgogICAgIGludCBtYWluKCkKICAgICB7CiAgICAgICAgICBBICpnZyA9IG5ldyBBKDUpOwogICAgICAgICAgQSB0ID0gZnVuKDIpOwogICAgICAgICAgZGVsZXRlIGdnOwogICAgIH0=