在c++程序中,内存管理中经常隐藏着很深的bug。
         虽然我们一般可以采用vector,string,map等容器自动管理内存,
但涉及多态,继承的时候也不可避免的要手动管理,c++标准库中提供的auto_ptr能一定程度上帮助我们。

auto_ptr用法:
1.需要包含头文件

2.Constructor:explicit auto_ptr(X* p = 0) throw();
将指针p交给auto_ptr对象托管

3.Copy constructor:
auto_ptr(const auto_ptr&) throw();
template auto_ptr(const auto_ptr& a) throw();
指针的托管权会发生转移

4.Destructor: ~auto_ptr();
释放指针p指向的空间

5.提供了两个成员函数
X* get() const throw();//返回保存的指针,对象中仍保留指针
X* release() const throw();//返回保存的指针,对象中不保留指针