程序段:

void MainWindow::testDemo()
{
QObject *obj = new QPushButton;
const QMetaObject *meta= obj->metaObject();
QMetaClassInfo info = meta->classInfo(0);
cout << info.name() <<endl;
}

报错如下:

一、variable `xxx

错误:

variable `xxx’ has initializer but incomplete type

原因:

xxx对应的类型没有找到,只把xxx声明了但是没给出定义。编译器无从确认你调用的构造函数是什么,在哪儿。一般是没有包含定义xxx的头文件。

解决办法:

包含头文件:​​#include <QMetaClassInfo>​