我有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/