Code:
#include <iostream>
using namespace std;
class Walnut
{
public:
int Size;
};
class Squirrel
{
private:
Walnut *MyDinner;
public:
Squirrel();
~Squirrel();
};
Squirrel::Squirrel()
{
cout << "Starting!" << endl;
MyDinner = new Walnut;
MyDinner->Size = 30;
}
Squirrel::~Squirrel()
{
cout << "Cleaning up my mess!" << endl;
delete MyDinner;
}
int main()
{
Squirrel *Sam = new Squirrel;
Squirrel *Sally = new Squirrel;
delete Sam;
delete Sally;
return 0;
}
I dont understand much about this code. Why the output is Starting! Starting Cleaning up my mess! Cleaning up my mess! ?????
Why it does not (Starting! Cleaning up my mess! Starting! Cleaning up my mess!) Because
Squirrel();
~Squirrel();
It's executed one by one not together?