A smart pointer is an abstract data type that stimulates a pointer with additional funationality, such as auto memory deallocation, reference counting, etc. In practise it could be a wrapper around of a regular pointer and forwards all meaningfull operations to the pointer
The simplest smart pointer is autr_ptr which are defined in header file <memory>
template <class T> auto_ptr { public: explicit auto_ptr(T* p): auto_ptr(p){} ~auto_prt() {delete ptr;} T& operator*(){return *ptr;} T* operator->(){return &ptr;} private: T* ptr; // other functionalities... };
reference:
- http://en.wikipedia.org/wiki/Smart_pointer
- http://ootips.org/yonat/4dev/smart-pointers.html