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