Ala*_*ing 6 c++ qt copy-constructor assignment-operator qobject
由于该QObject文档和许多其他人解释,一个QObject有身份,从而隐藏了它的拷贝构造函数和赋值操作符.
但是,我并非源于QObject其动态属性功能或信号/插槽功能.我只想要反思或访问的能力Foo::staticMetaObject.
class Foo : public QObject {
Q_OBJECT
Q_ENUMS(Color)
public:
enum Color { Blue, Red, Pink };
private:
Color color;
};
Q_DECLARE_METATYPE(Foo::Color)
Run Code Online (Sandbox Code Playgroud)
然后,我无法复制Foo:
Foo a;
Foo b;
a = b;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,允许复制和分配的最佳方法是什么?我是否绝对需要编写复制构造函数和赋值运算符?他们会是什么样子?反思仍然有效吗?
ale*_*sdm 14
如果你只对有反思感兴趣
你可以用Q_GADGET而不是Q_OBJECT:
class Foo {
Q_GADGET
Q_ENUMS(Color)
public:
enum Color { Blue, Red, Pink };
private:
Color color;
};
Run Code Online (Sandbox Code Playgroud)
这将声明和定义Foo::staticMetaObject.