在Qt中,我们知道Q_OBJECT是一个宏。宏在这个上下文中意味着什么?特别是我发现宏这个词可能有几个不同的定义。
谢谢。
发布于 2012-09-03 15:52:28
宏仅仅意味着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宏。其他表达式为信号/时隙机制以及转换定义元对象和实用程序方法。
https://stackoverflow.com/questions/12250863
复制相似问题