#ifndef THAT_PTR_CLASS_H #define THAT_PTR_CLASS_H #include using std::cout; using std::endl; class ThatClass { public: /* * default constructor -- no initializer list */ ThatClass() { cout << "ThatClass default constructor" << endl; id = 3; } /* * copy constructor */ ThatClass(const ThatClass &rhs) : id(rhs.id) { cout << "ThatClass copy constructor" << endl; } /* * operator= definition */ const ThatClass & operator=(const ThatClass &rhs) { cout << "ThatClass operator=" << endl; //alias test, if we are copying to ourself, don't do anything if(this != &rhs) { id = rhs.id; } return (*this); } /* * default destructor */ ~ThatClass() { cout << "ThatClass destructor" << endl; } private: int id; }; #endif