这就是我所拥有的:
class A{
B* object;
const B& create_object(){
if(object == nullptr)
object = new B(this);
return *object;
}
}
现在,事情就是这样。我应该不允许以 A 以外的任何其他方式创建 B。允许我创建 B 对象的唯一方法是:
A a;
auto b1 = a.create_object();
现在因为我不应该允许创建对象,所以我将 B 的所有构造函数设为私有,并说 A 是 B 的朋友。但是在做的时候
auto b1 = a.create_object();
它不会在调用复制构造函数时编译。有什么办法可以避免吗?我不想返回一个指针,它需要是一个对象。