可能重复:
什么是智能指针,我应该什么时候使用?
我正在阅读一篇文章,我找到了一个小例子来演示boost::scoped_ptr<T>
:
#include <cstdlib>
#include <iostream>
#include <boost/scoped_ptr.hpp>
#include <boost/scoped_array.hpp>
static int count = 0;
class printer
{
int m_id;
public:
printer(void) :
m_id(count++)
{
}
~printer(void)
{
std::cout << "Printer " << m_id
<< " destroyed" << std::endl;
}
};
int
main(void)
{
boost::scoped_ptr<printer> p1(new printer);
boost::scoped_ptr<printer> p2(new printer);
std::cout << "Exiting test program" << std::endl;
return EXIT_SUCCESS;
}
我在文章中唯一不明白的是这样的声明:
使用
scoped_ptr
,您表示不打算或不允许所有权转让。
作为该主题的初学者,也许这是错误的文章,但是上面的行到底是什么意思?