`
ld_hust
  • 浏览: 171528 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关于auto_ptr的忠告

 
阅读更多


1.auto_ptr不能用于数组,因为它调用的是delete,不是delete[]。 

 

2.auto_ptr上只用于局部,尽可能不要用它共享内存。它的出现是为了防止异常情况下的内存泄露。

 

3.全局的指针一般来说是用于共享一块内存,你应该在你的程序初始化时初试这快内存,程序运行结束时释放内存,以防止共享失败。使用auto_ptr完全莫名其妙。

 

4.auto_ptr永远不要做copy,copy了就表示你极有可能将来失去控制。


5.auto_ptr永远不要做左值,即使是在初始化时候,因为auto_ptr做右值会导致copy行为,而非auto_ptr右值不能隐式转换为auto_ptr。

分享到:
评论

相关推荐

    C++ unique_ptr weak_ptr shared_ptr auto_ptr智能指针.doc

    在 C++ 中,有四种智能指针:auto_ptr、unique_ptr、shared_ptr 和 weak_ptr,每种智能指针都有其特点和使用场景。 一、auto_ptr auto_ptr 是 C++98 中引入的智能指针,它可以自动释放动态分配的内存。但是,auto_...

    auto_ptr指针介绍(智能指针).

    ### Auto_ptr 智能指针介绍 在C++中,`auto_ptr`是一种智能指针,它通过在对象的生命周期内自动管理所指向的对象内存,来帮助开发者避免内存泄漏和其他资源管理问题。`auto_ptr`是C++标准库的一部分,并在C++11之前...

    自己实现的auto_ptr

    标题中的“自己实现的auto_ptr”指的是用户自行编写的一个智能指针类,模仿了C++标准库中的`std::auto_ptr`。`std::auto_ptr`是C++标准库中的一个智能指针,用于管理动态分配的对象,它会在适当的时候自动删除所指向...

    auto_ptr再回忆

    标题与描述均提到“auto_ptr再回忆”,暗示文章将通过一个故事的形式,回顾与探讨C++中`auto_ptr`的使用及其潜在问题。`auto_ptr`是C++标准库中的一个智能指针类,用于自动管理动态分配的资源,当`auto_ptr`对象超出...

    c++的智能指针Auto_PTR的细致而经典的分析

    ### C++ 智能指针 Auto_PTR 的细致而经典分析 #### 一、引言 C++ 是一门强大而灵活的语言,它不仅为开发者提供了底层控制能力,还通过多种高级特性来帮助开发者提高代码质量和可维护性。其中一项重要的功能就是...

    自动指针auto_ptr

    详细讨论c++ auoto_ptr的原型,用法,以及注意事项

    C++中的auto_ptr智能指针的作用及使用方法详解

    在C++11之后,`auto_ptr`已被`unique_ptr`取代,因为`auto_ptr`有一些限制和潜在的问题,但在理解C++的历史和发展时,学习`auto_ptr`仍然是有价值的。 **1. `auto_ptr`的基本概念** `auto_ptr`是一个类模板,它包装...

    C++中auto_ptr智能指针的用法详解

    其中,`auto_ptr`是C++98标准库中提供的一个智能指针类型,但在C++11及更高版本中已被推荐弃用,取而代之的是`unique_ptr`。尽管如此,理解`auto_ptr`的工作原理仍然是学习C++历史和理解智能指针概念的重要部分。 `...

    com_ptr_t 的解析

    `_com_ptr_t`是Microsoft Visual C++运行库提供的一种智能指针,专为简化COM接口的使用而设计。 `_com_ptr_t`类模板封装了COM接口指针,并自动处理`AddRef`、`Release`和`QueryInterface`等方法的调用,这些是COM...

    test_share_ptr

    在本项目"test_share_ptr"中,我们可以推断其主要关注的是C++中的智能指针`std::shared_ptr`。`std::shared_ptr`是C++标准库中的一个智能指针类型,属于弱所有者(weak ownership)的智能指针,用于管理动态分配的...

    C++ auto_ptr源码

    该文档是C++ auto_ptr源码,感兴趣的可以自行下载学习。

    智能指针shared_ptr的Demo

    3. 从原始指针转换:`std::shared_ptr<T> ptrRaw(ptr_raw);`,其中`ptr_raw`是原始指针。 4. 从另一个`shared_ptr`复制:`std::shared_ptr<T> ptrCopy(ptrOther);`,这样两个`shared_ptr`将共享相同的引用计数。 ...

    unique_ptr源码

    该文档是C++ auto_ptr源码,感兴趣的可以自行下载学习,方便大家学习参考。

    C++ 智能指针(shared_ptr/weak_ptr)源码

    C++ 智能指针(shared_ptr/weak_ptr)源码 源码位置:gcc-6.1.0\gcc-6.1.0\libstdc++-v3\include\tr1 这里只单列shared_ptr.h文件用于分析

    C++智能指针:auto-ptr详解.pdf

    在`TestAutoPtr2`函数中,我们看到当尝试将一个`auto_ptr`赋值给另一个时,原始`auto_ptr`(`my_auto1`)会失去对其对象的所有权,导致对象被提前删除。这是因为`auto_ptr`的赋值运算符执行了`reset()`和`release()`...

    C++11新特性之智能指针(shared_ptr/unique_ptr/weak_ptr)

    本文主要讨论了三种智能指针:`shared_ptr`、`unique_ptr`和`weak_ptr`。 首先,`shared_ptr`是引用计数型智能指针,它维护了一个内部的引用计数,用于跟踪有多少个`shared_ptr`实例指向同一对象。当创建一个新的`...

    一个最小的sharedunique_ptr实现来处理booststdsharedunique_ptr不可用的情况。.zip

    在C++编程中,`shared_ptr`和`unique_ptr`是智能指针的两种主要类型,它们用于管理对象的生命周期,以防止内存泄漏。在某些情况下,可能由于库的限制或者特定环境不支持Boost或C++11及更高版本,导致无法使用标准库...

    C++智能指针-unique-ptr智能指针详解.pdf

    《C++智能指针——unique_ptr智能指针详解》 智能指针是C++中用于自动管理动态分配内存的一种工具,它可以确保在适当的时候自动释放内存,从而避免内存泄漏的问题。其中,`unique_ptr`是一种特殊的智能指针,它拥有...

Global site tag (gtag.js) - Google Analytics