我有2个类,我想返回对私有成员对象的引用。

class BB{};

class B
{
   std::unique_ptr<BB> b;
public:
   const std::unique_ptr<BB>& getBB(){return b;}
};
int main()
{
   B b;
   std::unique_ptr<BB> x=b.getBB();
}


毫无疑问,错误发生在main的x=b.GetBB()上,
...can't be referenced. It's a deleted function.

最佳答案

您正在尝试复制初始化unique_ptr,这是不允许的,因为unique_ptr已删除复制构造函数。尝试

const std::unique_ptr<BB>& x = b.getBB();

关于c++ - unique_ptr:所以我不能再引用已删除的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28826350/

10-09 03:23