我有一个看起来像这样的代码:
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
的构造函数即可使用原始指针。