智能指针使用中的几个问题

智能指针能不能传出去和智能指针能不能传进来

智能指针对于C++使用者来说,应该是非常友好了,C++的指针特性使得C++可以非常方便的操作内存,但是如果不能很好的使用,他也会给使用者带来一些困扰,比如C++维护的指针能不能传出去呢?我们有时候需要将一个智能指针维护的指针传出去,有时是因为接口无法改变,有时候是因为需要赋值给普通指针,这时候可以想一下,如果指针传出去了,那么谁来维护传出去的指针呢,万一传出去的智能发生了复制怎么办,这时候我们析构智能智能维护的内存时,被复制的指针如果还在使用,就会造成大问题,同样道理,我们也不能将指针直接传给智能指针,不是C++标准不允许,而是跟上面一样,加入我们将指针传给智能指针,那么原始的指针谁来维护呢,如果原始的指针再发生拷贝操作怎么办呢?因此,基于稳定性和安全性,俗称鲁棒性的考虑,我们一般情况下禁止将智能指针维护的指针传入传出,当然也有特殊情况,不过即使发生了特殊情况也要慎之又慎,以防指针维护的内存被智能指针提前释放。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangdianqin/article/details/79966254
个人分类: c++
上一篇Git的几条常用命令
下一篇STL的区间问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭