X类的operator=
已删除
X& operator=(X const&) = delete;
Y类看起来像这样:
class Y {
private:
X variableX;
public:
Y(int p) {
variableX= X(p);
}
}
我正在尝试做这样的事情:
class Z {
private:
Y variableY;
public:
void functionF() {
variableY = Y(42);
}
}
Z variableZ;
variableZ.functionF();
这不起作用,因为由于类operator=
不存在隐式Y
的情况而删除了类X
的隐式Z
。
但是,我真的不需要任何地方移动任何东西。我想实例化类Y
,在某个时候创建对象variableY
代替成员变量X
,后者又将创建对象variableY.variableX
代替变量{{1 }}。不需要移动任何东西,所有东西都可以在应该存储的内存位置创建。
我可以实现这种行为吗?