#include <iostream>
using namespace std;
class obj{
public:
int data;
obj(int d)
: data(d)
{
std::cout << "Constructor made for obj" << endl;
}
~obj(){
std::cout << "Destructor made for obj. data = " << data << endl;
}
};
int main()
{
{
obj o1(25);
{
o1 = obj(10);
}
}
return 0;
}
output is
Constructor made for obj
Constructor made for obj
Destructor made for obj. data = 10
Destructor made for obj. data = 10
why not last line of output is Destructor made for obj. data = 25, how its destroying same object 2 times!
