では、がマクロQt
であることがわかっています。この文脈でマクロとはどういう意味ですか? 特に、マクロという用語にはいくつかの異なる定義があることに気付きました。Q_OBJECT
ありがとう。
マクロQ_OBJECT
は、それが実際には C++ マクロであることを意味します。で定義されてsrc/corelib/kernel/qobjectdefs.h
おり、定義は読み取ります
#define Q_OBJECT \
public: \
Q_OBJECT_CHECK \
static const QMetaObject staticMetaObject; \
Q_OBJECT_GETSTATICMETAOBJECT \
virtual const QMetaObject *metaObject() const; \
virtual void *qt_metacast(const char *); \
QT_TR_FUNCTIONS \
virtual int qt_metacall(QMetaObject::Call, int, void **); \
private:
Q_OBJECT_CHECK
Q_OBJECT
マクロがクラスで使用されているかどうかを確認するために使用される別のマクロです。他の式は、シグナル/スロット メカニズムと変換のためのメタオブジェクトとユーティリティ メソッドを定義します。