详解C++智能指针

在C++中,动态内存的管理是通过一对运算符来完成的:new,在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;`delete,接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。

动态内存的使用很容易出问题,因为确保在正确的时间释放内存是极其困难的。有时我们会忘记释放内存,在这种情况下就会产生内存泄漏;有时在尚有指针的引用内存的情况下我们就释放了它,在这种情况下就会产生引用非法内存的指针,也就是野指针。

为了更容易(同时也更安全)地使用动态内存,C++提供了四种智能指针(smart pointer)类型来管理动态对象,分别是auto_ptrunique_ptrshared_ptrweak_ptr。其中auto_ptr是C++98提供的解决方案,C+11已将将其摒弃。

回头整理一下

好文章:

https://www.nowcoder.com/tutorial/93/a34ed23d58b84da3a707c70371f59c21

https://www.cnblogs.com/lanxuezaipiao/p/4132096.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值