我对下面的代码有问题:

ProgrammSettings.h

#pragma once
static class ProgrammSettings
{
public:
    static int fd;
};

Settings.cpp
#include "ProgrammSettings.h"

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

我在做什么错?
谢谢!

最佳答案

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

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

int ProgrammSettings::fd;

关于c++ - 未解析的外部符号 C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13660017/

10-09 17:26