// PtrTest.h #ifndef PtrTest_H #define PtrTest_H #include // Dummy class. class MyInt { private: static int _count; int _i; public: MyInt(int i) : _i(i) { ++_count; std::cout << "MyInt: creating object " << get_count() << " at " << this << std::endl; } virtual ~MyInt() { --_count; std::cout << "MyInt: deleting object " << get_count() << " at " << this << std::endl; } int get_value() const { return _i; }; void set_value(int i) { _i = i; }; static int get_count() { return _count; }; static void reset_count() { _count = 0; }; }; // Dummy subclass. class MySubInt : public MyInt { public: MySubInt(int i) : MyInt(i) { std::cout << "MySubInt: creating object." << std::endl; } ~MySubInt() { std::cout << "MySubInt: deleting object." << std::endl;; } }; #endif