#ifndef TOYPTR_H_ #define TOYPTR_H_ template class ToyPtr { public: // Constructor that accepts the ptr. ToyPtr(T* ptr) : ptr_(ptr) { } // Destructor that deletes the ptr. ~ToyPtr() { delete ptr_; } // reminder: delete nullptr is safe (C++11) // Implement the "*" operator T& operator*() { return *ptr_; } // Implement the "->" operator T* operator->() { return ptr_; } private: // The pointer itself. T* ptr_; }; #endif // TOYPTR_H_