VAL*_*OD9 4 c++ qt copy-constructor moc copy-assignment
在这里,我们可以读到没有复制构造和复制赋值运算符可评估.但是在这里我们可以阅读它,qRegisterMetaType并且Q_DECLARE_METATYPE必须有公共默认构造函数,公共复制构造函数和公共析构函数.问题是:谁说谎?或者我没有正确理解它?
一切都是真的:
1.QObject无法复制,所有后代也无法复制.
2. Q_DECLARE_METATYPE接受具有公共构造函数,复制构造函数和析构函数的对象.
没有矛盾,因为你不能注册QObject后代Q_DECLARE_METATYPE.
编辑:
当您将类转换为QVariant它时,使用复制构造函数来制作对象的副本:
void *ptr = QMetaType::construct(x->type, copy);
Run Code Online (Sandbox Code Playgroud)