C++ 如何将auto_ptr用作处理另一个成员变量的成员变量

C++ 如何将auto_ptr用作处理另一个成员变量的成员变量,c++,auto-ptr,C++,Auto Ptr,我有一门课是这样的: class A { private: B* ptr; } 但是B ptr在不同的A对象之间共享。 如何使用auto_ptr,以便在A被破坏时B保持打开状态,以便指向同一ptr的其他A对象可以继续运行而不会出现问题。 这看起来合适吗: class A { public: auto_ptr< B > m_Ptr; private: B* ptr; } A类 { 公众: auto_ptrm_ptr; 私人: B*ptr; } 人们采用了哪

我有一门课是这样的:

class A 
{

 private:

 B* ptr;

}
但是B ptr在不同的A对象之间共享。 如何使用auto_ptr,以便在A被破坏时B保持打开状态,以便指向同一ptr的其他A对象可以继续运行而不会出现问题。 这看起来合适吗:

class A
{
public:

 auto_ptr< B > m_Ptr;

private:

 B* ptr;

}
A类
{
公众:
auto_ptrm_ptr;
私人:
B*ptr;
}
人们采用了哪些不同的方式来实现这一点,以及他们彼此看到的任何问题/优势。。。
谢谢

您正在寻找的是共享\u ptr。它正好处理这种类型的场景


但这是BOOST库的一部分,而不是STL,因此可能无法在特定平台上使用。但是,如果你在谷歌上搜索一下,你可以在这里找到很多独立的refcounted指针实现,它们可以满足你的需要。

如果我清楚地理解你的问题,我建议使用
::std::tr1::shared_ptr
::boost::shared_ptr

这篇文章很有趣。推动的事情基本上是一样的。我建议使用Tr1版本,如果你有它,因为所有C++编译器都应该支持Tr1,其中Boost是一个附加库,你可能到处都找不到。