之前博客《浅析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 是第一个智能指针。 但是为什么会被弃用呢?看看一个简单的例子