我想存储一些值/变量,以便可以在任何类中进行更改和读取。
到目前为止我尝试过的是: 我创建了一个名为“ settings.h”的头文件:
#ifndef SETTINGS_H
#define SETTINGS_H
#include <QString>
class Settings {
public:
static QString OutputFormat;
};
#endif // SETTINGS_H
现在,我将其包含在以下课程中:
#include "settings.h"
但是当我尝试设置此变量时:
Settings::OutputFormat = "mp3";
它不会与该错误一起编译:
undefined reference to `Settings::OutputFormat'
该怎么办? 我需要类似设置类的东西。任何班级 #include“ settings.h” 应该能够读取并更改变量值。这些值应该是全局值,并且应在包括该设置类的所有类之间共享。
答案 0 :(得分:2)
您需要在某个位置的cpp文件中为此变量声明一个“位置”:
QString Settings ::OutputFormat;
这就足够了。在源文件中没有“位置”的情况下,编译器将不会创建变量,并且它将是未定义的引用。