引用计数的智能指针也会造成内存泄漏。

备忘一下,今天写程序的时候用了一个自己写的基于引用计数的智能指针,结果发生了内存泄漏,奇怪了半天,最终找出了问题所在。

大概是这个样子:


ref_ptr<View> main_view_ptr = make_ref_ptr( new View);

main_view_ptr->Connect(..., main_view_ptr);

其中main_view_ptr又作为上下文传入参数保存到了main_view_ptr的成员变量中,结果造成了自己保存了自己的指针,造成main_view_ptr超出作用域的时候无法析构,引用技术一直为2.

这样就给我提了个醒,即使使用了智能指针,也不要传来传去滥用。

以上问题也存在于tr1的share_ptr。

原文地址:https://www.cnblogs.com/sosopop/p/2552873.html