auto_ptr类

auto_ptr类

  auto_ptr类,主要用于管理动态内存分配。当auto_ptr对象过期时,析构函数将使用delete来释放内存。将new返回的地址赋值给auto_ptr对象时,无须记住还需要释放这些内存。在auto_ptr对象过期时,内存将自动被释放。

  使用auto_ptr对象时,必须包含头文件<memory>。该文件包含auto_ptr模板。使用通常的模板句法来实例化所需类型的指针。auto_ptr构造函数是显式的,不存在从指针到auto_ptr对象的隐式类型转换。

1 auto_ptr <double>pd;
2 double *p_reg = new double;
3 pd = p_reg;                                //不允许
4 pd = auto_ptr<double>(p_reg);   //允许
5 auto_ptr<double> pauto = p_reg;//不允许
6 auto_ptr<double>pauto(p_reg);//允许     

  注意:在使用auto_ptr时,只能配对使用new和delete。只能对new分配的内存使用auto_ptr对象,不能对由new[]分配的或通过声明变量分配的内存使用它。

posted @ 2017-09-28 22:59  陈辻柒  阅读(309)  评论(0编辑  收藏  举报