我有一个看起来像这样的代码:

class Parent
{
 auto_ptr<Resource> ptr2Resc;
 public: void parentMethod(int i )
{
 SomeOtherClass someOthrPtr = new SomeOtherClass(ptr2Resc);
}
};

The ctor of SomeOtherClass:
SomeOtherClass(auto_ptr<Resource> ptrRes);

因此,现在当我调用parentMethod时,auto_ptr被交换并且ptr2Resc被分配。我的C++代码不支持TR1或Boost。
因此,在父类析构函数期间而不是在将其作为参数传递时,释放ptr2Resc的最佳方法是什么。我可以将它作为对auto_ptr的引用传递给SomeOtherClass ctor吗?

谢谢

最佳答案

以下是Josuttis书中有关通过引用传递auto_ptr的引用:



正如我在评论中所说,如果您不打算转让所有权,则只需更改SomeClass的构造函数即可使用原始指针。

10-08 08:56