没有躲过的坑--智能指针陷阱

本文讨论了C++11中智能指针的一些常见陷阱,包括auto_ptr的弃用原因,unique_ptr的正确使用,如何处理数组与unique_ptr的结合,shared_ptr的引用计数机制,以及智能指针在函数传递和类型转换中的注意事项。通过实例分析,强调了智能指针使用时的谨慎性。
摘要由CSDN通过智能技术生成

之前博客《浅析C++中的智能指针》讲诉了一些智能指针的东西,可以帮助我们更加方便高效的使用指针,但是凡事都不会很完美。即使你使用智能指针代替了传统的指针,在实战中你还是会遇到很多的坑儿。

现在,就分几个方面:
首先为了简化代码,进行了一些定义:

class Test
{
public:
    Test():m_value(0) { std::cout << "Test::Test" << std::endl; }
    ~Test() { std::cout << "Test::~Test destructor" << std::endl; }
    int m_value;
};
typedef std::auto_ptr<Test>   TestAutoPtr;
typedef std::unique_ptr<Test> TestUniquePtr;
typedef std::shared_ptr<Test> TestSharedPtr;

为什么auto_ptr 被弃用?
auto_ptr 是第一个智能指针。 但是为什么会被弃用呢?看看一个简单的例子


                
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一苇渡江694

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值