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

原创 2018年04月16日 20:46:31

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangdianqin/article/details/79966254

【C++】Vs2008中使用智能指针

Tr1模块是C++11正式诞生前夕,已经确定加入新标准的C++特性。Vs2008算是C++11标准正式诞生前夕,对C++03和tr1标准支持的最好的一个IDE,是相当经典的一版,很多程序的开发和维护都...
  • lpsl1882
  • lpsl1882
  • 2016-04-15 16:07:16
  • 1417

Android 智能指针总结

这3种指针,在这篇博客http://blog.csdn.net/luoshengyang/article/details/6786239中讲的比较详细。我们这边自己再重新梳理,总结下。 这3种指针都是...
  • q1183345443
  • q1183345443
  • 2016-10-14 10:34:14
  • 206

android 的 sp 智能指针用法介绍 sp<> wp<>

ref:
  • yellow_hill
  • yellow_hill
  • 2014-09-15 13:40:26
  • 1276

Qt 中的智能指针

Qt 中的智能指针上一篇博客中介绍了 C++11 标准中的提供的智能指针。在 Qt 中也提供了类似的替代功能,并且比 C++11 标准中提供的功能还要强大,所以如果我们使用 Qt 作为基础库,那么就没...
  • liyuanbhu
  • liyuanbhu
  • 2017-09-03 21:19:17
  • 1421

智能指针最全资料-5篇经典讲义

  • 2011年09月05日 22:36
  • 300KB
  • 下载

关于boost智能指针使用的一些坑的总结

boost库的智能指针确实是一个好东西,可以方便我们进行内存管理,避免因为忘记调用delete而导致的内存泄漏。然而boost库的只能指针却并非一定那么智能,在使用boost库智能指针的时候有一些坑,...
  • tgxallen
  • tgxallen
  • 2017-04-09 15:30:46
  • 2163

[转]在VC中使用智能指针操作Excel

最近也遇到了用VC读写Excel文档的问题。从网上找到一片文章,特记录下来。 引自 http://www.gzweix.com/article/sort0247/sort0379/sort0390/i...
  • cnhome
  • cnhome
  • 2010-04-05 13:13:00
  • 1016

Qt中的智能指针

尽管C++不支持垃圾回收,但C++对象的自动内存管理还是可以通过好几种方式来实现,主要是通过智能指针使用以及引用计数。Qt提供了许多不同的智能指针类型,以适用于不同的用途。 一个重写了指针解引用操作o...
  • yzl11
  • yzl11
  • 2015-10-27 19:15:14
  • 4594

使用智能指针的注意事项

1. 使用unique_ptr以替代auto_ptrauto_ptr是C++98标准库提供的一个智能指针,但已被C++11明确声明不再支持。auto_ptr具有以下缺陷: * auto_ptr有拷贝...
  • u011475134
  • u011475134
  • 2017-08-06 18:11:38
  • 514

C++中智能指针的设计和使

  • 2012年05月17日 09:05
  • 151KB
  • 下载
收藏助手
不良信息举报
您举报文章:智能指针使用中的几个问题
举报原因:
原因补充:

(最多只允许输入30个字)