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++中,类的构造函数中成员初始化列表用来初始化类的成员变量。如果你在构造函数的初始化列表中使用了一个不是类成员的名称,或者是一个静态成员的名称,编译器会报这样的错误。

解决方法:

  1. 确保你在初始化列表中使用的是类的非静态成员变量。

  2. 如果stringList是静态成员变量,你不能在构造函数的初始化列表中初始化它,静态成员变量应该在类的定义外部初始化。

例如,如果stringList是类的非静态成员变量,你应该这样初始化它:

 
 
class StringListModel {
private:
QStringList stringList;
 
public:
StringListModel() : stringList() {
// 构造函数的其他代码
}
// 类的其他成员函数和变量
};

如果stringList是静态成员变量,你应该在类的定义外部初始化它:

 
 
class StringListModel {
private:
static QStringList stringList;
// 类的其他成员
};
 
QStringList StringListModel::stringList; // 静态成员变量的定义和初始化
posted @ 2024-04-22 08:47  txwtech  阅读(12)  评论(0编辑  收藏  举报