QT stringlistmodel.h:14:32: Member initializer 'stringList' does not name a non
stringlistmodel.h:14:32: Member initializer 'stringList' does not name a non
报错信息提示在stringlistmodel.h
文件的第14行第32个字符处,初始化成员stringList
没有指向一个非静态成员。
解释:
在C++中,类的构造函数中成员初始化列表用来初始化类的成员变量。如果你在构造函数的初始化列表中使用了一个不是类成员的名称,或者是一个静态成员的名称,编译器会报这样的错误。
解决方法:
-
确保你在初始化列表中使用的是类的非静态成员变量。
-
如果
stringList
是静态成员变量,你不能在构造函数的初始化列表中初始化它,静态成员变量应该在类的定义外部初始化。
例如,如果stringList
是类的非静态成员变量,你应该这样初始化它:
class StringListModel {
private:
QStringList stringList;
public:
StringListModel() : stringList() {
// 构造函数的其他代码
}
// 类的其他成员函数和变量
};
如果stringList
是静态成员变量,你应该在类的定义外部初始化它:
class StringListModel {
private:
static QStringList stringList;
// 类的其他成员
};
QStringList StringListModel::stringList; // 静态成员变量的定义和初始化
欢迎讨论,相互学习。
cdtxw@foxmail.com