原理:对象的构造析构函数是自动调用的,如果将堆上内存释放放入某个栈上对象的析构函数,就可以实现 使用析构函数防止资源泄漏。典型代码是stl的auto_ptr。
template<class T>
class auto_ptr {
public:
auto_ptr(T *p = 0): ptr(p) {} // 保存ptr,指向对象
~auto_ptr() { delete ptr; } // 删除ptr指向的对象
private:
T *ptr; // raw ptr to object
};