2017-06-28 11:46
⁄ 工业·编程
⁄ 共 2610字
我们知道auto_ptr,unique_ptr构造或者析构后,都会将自身的管理权限转移,那么如何解决这个问题呢,boost库也给我们提供了带引用计数的指针。
1:shared_ptr
shared_ptr是最常用的智能指针,shared_ptr采用了引用计数器,多个shared_ptr中的T *ptr指向同一个内存区域(同一个对象),并共同维护同一个引用计数器。shared_ptr定义如下,记录同一个实例被引用的次数,当引用次数大于0时可用,等于0时释放内存。所以用户可以自由的赋...
智能指针阅读全文
2017-06-21 11:27
⁄ 工业·编程
⁄ 共 3365字
在C++中我们为了避免内存泄漏而引入的智能指针
因为在C++中我们频繁使用堆内存,但是堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。我们使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题,使用智能指针能更好的管理堆内存。实际上我们这个智能指针即对象,因为对...
智能指针阅读全文
2014-06-30 05:21
⁄ 工业·编程
⁄ 共 761字
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;
}
看看上面这段代码有没有问题? 这段代码什么也没做,可是在运行的时候程序去会崩溃。问题出...
指针, 智能指针阅读全文