未解析的外部符号C++

Rom*_*man 3 c++ symbols class

我在下面的代码中遇到了问题:

ProgrammSettings.h

#pragma once
static class ProgrammSettings
{
public:
    static int fd;
};
Run Code Online (Sandbox Code Playgroud)

Settings.cpp

#include "ProgrammSettings.h"

static bool LoadSettings()
{
    ProgrammSettings::fd = 2; // here error Unresolved symbol!!
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么?谢谢!

das*_*ght 7

与仅需要声明的实例变量不同,还必须定义类的静态成员变量.

目前,您的代码仅包含声明.将静态变量的定义添加fd到cpp文件以修复错误:

int ProgrammSettings::fd;
Run Code Online (Sandbox Code Playgroud)