程序段:
void MainWindow::testDemo()
{
QObject *obj = new QPushButton;
const QMetaObject *meta= obj->metaObject();
QMetaClassInfo info = meta->classInfo(0);
cout << info.name() <<endl;
}
报错如下:
错误:
variable `xxx’ has initializer but incomplete type
原因:
xxx对应的类型没有找到,只把xxx声明了但是没给出定义。编译器无从确认你调用的构造函数是什么,在哪儿。一般是没有包含定义xxx的头文件。
解决办法:
包含头文件:#include <QMetaClassInfo>