我正在向智能指针转变,我试图确保我正确使用它们。有很多问题涉及何时使用每个问题,但我无法找到有关获得者的具体问题。这是unique_ptr的滥用吗?
我有一个类拥有一个指针,我希望其他类能够访问该指针(在步骤中重构遗留代码)。我想给这个类一个unique_ptr,因为它只会拥有这个对象,但它们不能被复制。我应该返回对unique_ptr的引用,还是只使用shared_ptr?
class B
{
public:
doAction() {};
};
class A
{
private:
std::unqiue_ptr<B> pointer;
public:
std::unique_ptr<B>& GetPointer()
{
return pointer;
}
};
a.GetPointer()->doAction();
我个人使用原始指针或引用为非拥有访问。 (如果允许该值为空,则使用指针;否则使用引用) – 0x5453
这将允许调用者执行'a.GetPointer()。重置();'可能不完全是你想到的。 ''返回pointer.get();' –