shared_ptr虽然方便,但是它有着一个致命的缺陷就是循环引用问题,因为shared_ptr本身并没有能力解决这个问题,所以我们又引入了弱指针weak_ptr来辅助shared_ptr解决这个问题。那么循环引用又是什么场景?举个栗子:假设现在我们要创建一个双向整形链表,但是这个链表的指针域..
分类:
其他好文 时间:
2016-09-06 23:30:48
阅读次数:
174
今天让我们来分析一下C++中的智能指针和异常,首先呢先普及一下概念!(1)智能指针:智能或者自动化的管理指针所会向的动态资源的释放。(2)异常:当一个函数发现自己无法处理的错误时,让函数的调用者直接或间接的处理这个问题。(3)RAII:资源分配即初始化。构造函数完成..
分类:
其他好文 时间:
2016-04-04 21:07:08
阅读次数:
210
auto_ptr与scoped_ptr的实现见本人的上篇博客。三、shared_ptrshared_ptr的实现原理是通过引用计数来实现,只有当引用计数为1时才释放空间,否则只需将引用计数减1.拷贝和赋值将引用计数加1,具体代码如下:template<typenameT>
classSharedPtr
{
public:
SharedPtr();
..
分类:
其他好文 时间:
2016-03-23 23:48:50
阅读次数:
210