在c(Qt)中实现内省

我想知道是否有人可以为我澄清以下内容.我即将参加与Qt相关的测试,样本问题相当模糊.其中一个问题如下:

Qt通过以下方式实现内省:

一个.自动将每个类定义为QObject.

湾定义可以在QObject类中调用自身的元对象.

C.定义与每个QObject关联的元对象.

我知道要进行内省,你必须继承QObject(这也会实现信号和插槽),并且使用Q_OBJECT宏使它可以被MOC替换.我有一种感觉,这可能是这些答案中的任何一个,但我希望有人澄清一下.我认为这是A,但我可能是错的.

任何帮助是极大的赞赏.

最佳答案 Qt通过在QMetaObject中存储有关每个QObject派生类(以及具有Q_OBJECT宏的类)的信息来实现内省(读取
here). QMetaObject由moc预处理器构建.

我不会认为你的3个选项中的任何一个是正确的:

> a是明显错误的.
> b作为句子没有意义.
如果在末尾添加子类,则> c是正确的.

有关moc的更多信息here.

点赞