未解决的外部符号 C++

3
我有一个以下代码的问题: 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;
}

我做错了什么?谢谢!
3个回答

7

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

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

int ProgrammSettings::fd;

2
你需要在cpp文件的开头添加以下行:
 int ProgrammSettings::fd;

1

在类声明中静态数据成员的声明并不是它们的定义,你忘记添加与你的fd声明相匹配的定义了。
你必须显式地定义你的类的静态数据成员。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接