ドキュメントや他のQObject
多くの人が説明しているように、 aは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)
私はそれからコピーできませんFoo
:
Foo a;
Foo b;
a = b;
この場合、コピーと割り当てを許可する最善の方法は何ですか? コピー コンストラクターと代入演算子を必ず記述する必要がありますか? 彼らはどのように見えるでしょうか?リフレクションは機能しますか?