我有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();
}
毫无疑问,错误发生在x=b.GetBB()
的主要部分
...can't be referenced. It's a deleted function.
答案 0 :(得分:3)
您正在尝试复制初始化unique_ptr
,这是不允许的,因为unique_ptr
已删除了复制构造函数。尝试
const std::unique_ptr<BB>& x = b.getBB();