#include <iostream>
#include <string>
using namespace std;
class Wedgit
{
public:
Wedgit()
{
objectId = count++;
cout<<"default :"<< objectId <<endl;
}
Wedgit(const Wedgit& b):data(b.data)
{
objectId = count++;
cout<<"copy :"<< objectId <<endl;
}
~Wedgit()
{
cout<<"destruct :"<< objectId <<endl;
}
Wedgit& operator=(const Wedgit& b)
{
data = b.data;
cout<<"operator=:"<< objectId <<endl;
return *this;
}
private:
int data;
int objectId;
static int count;
};
int Wedgit::count = 0;
Wedgit Play1( const Wedgit& bbb )
{
cout<<"play1"<<endl;
return bbb ;
}
int main(int argc, char* argv[])
{
Wedgit w1;
cout << "=====================" << endl;
Play1(w1);
cout << "=====================" << endl;
Wedgit w2 = Play1(w1);
cout << "=====================" << endl;
Wedgit w3(Play1((w1)));
cout << "=====================" << endl;
Wedgit w4;
w4 = Play1(w1);
cout << "=====================" << endl;
return 0;
}