现在位置: 首页 > 智能指针
我们知道auto_ptr,unique_ptr构造或者析构后,都会将自身的管理权限转移,那么如何解决这个问题呢,boost库也给我们提供了带引用计数的指针。 1:shared_ptr shared_ptr是最常用的智能指针,shared_ptr采用了引用计数器,多个shared_ptr中的T *ptr指向同一个内存区域(同一个对象),并共同维护同一个引用计数器。shared_ptr定义如下,记录同一个实例被引用的次数,当引用次数大于0时可用,等于0时释放内存。所以用户可以自由的赋...
阅读全文
在C++中我们为了避免内存泄漏而引入的智能指针 因为在C++中我们频繁使用堆内存,但是堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。我们使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题,使用智能指针能更好的管理堆内存。实际上我们这个智能指针即对象,因为对...
阅读全文
shared_ptr是一个很好用的东西, 但是有些地方不注意也会带来很不必要的麻烦。 class test_ptr { }; typedef shared_ptr<test_ptr> TestPtr; int main() {     test_ptr* pTest = new test_ptr;     TestPtr sharePTest(pTest);     delete pTest;     return 0; } 看看上面这段代码有没有问题? 这段代码什么也没做,可是在运行的时候程序去会崩溃。问题出...
阅读全文