美文网首页
C++11智能指针

C++11智能指针

作者: 阿春_abcdlcq | 来源:发表于2018-11-17 11:31 被阅读0次

class example1

{

public:

    example1( int i ):m_i(i)

    {

    }

    ~example1()

    {

    }

    int getI() const

    {

        return m_i;

    }

    void setI(int i)

    {

        m_i = i;

    }

private:

    int m_i;

};

1.auto_ptr

    std::auto_ptr ap(new example1(2));

    if ( ap.get() )//判断是否有效

    {

        printf( "getI:%d", ap->getI() );//调用类对象的方法

        example1* pe = ap.release();//解绑

        ap.reset(pe);//重设

        ap.reset();//删除,设为空

    }

2.unique_ptr

控制权唯一,拷贝和赋值函数被删了

   unique_ptr exam1(new example1(2));

   unique_ptr exam2 = move(exam1);//exam1变空了

3.shared_ptr

    shared_ptr exam1(new example1(2));

    shared_ptr exam2=exam1;//共享一个,有引用计数

4.weak_ptr

协助 shared_ptr 工作,没有重载*和->,可以使用 lock 获得一个可用的 shared_ptr 对象,

use_count 返回与 shared_ptr 共享的对象的引用计数

expired 用于检测所管理的对象是否已经释放

reset 将 weak_ptr 置空

相关文章

  • C++11智能指针

    [C++11]智能指针 C++11包括了三种智能指针: shared_ptr weak_ptr unique_pt...

  • C++ 智能指针

    C++智能指针[https://zhuanlan.zhihu.com/p/54078587] C++11中智能指针...

  • 现代 C++:一文读懂智能指针

    智能指针 C++11 引入了 3 个智能指针类型: std::unique_ptr :独占资源所有权的指针。...

  • 智能指针和垃圾回收

    堆内存管理:智能指针与垃圾回收 显式内存管理 野指针 重复释放 内存泄漏 C++11 的智能指针 unique_p...

  • C++之智能指针

    本文主要总结C++11中的几种智能指针的原理,使用及实现方式。 I、上帝视角看智能指针 1、智能指针的引用是为了方...

  • Caffe 架构学习-底层数据1

    前言 shared_ptr智能指针 为了解决C++内存泄漏的问题,C++11引入了智能指针(Smart Point...

  • C++ 11 常用特性的使用经验总结(二)

    4、智能指针内存管理 在内存管理方面,C++11的std::auto_ptr基础上,移植了boost库中的智能指针...

  • 使用 C++11 智能指针时要避开的 10 大错误

    我很喜欢C++11的智能指针。在很多时候,对很多讨厌自己管理内存的人来说是天赐的礼物。在我看来,C++11的智能指...

  • std::unique_ptr使用

    1 引言 std::unique_ptr是c++11起引入的智能指针,为什么必须要在c++11起才有该特性,主要还...

  • 智能指针学习

    智能指针 介绍 为了更容易(同时也更安全的管)的使用动态内存,C++11提供了智能指针来管理new出来的内存sha...

网友评论

      本文标题:C++11智能指针

      本文链接:https://www.haomeiwen.com/subject/dmrskftx.html