класс — неразрешенный внешний символ переполнения стека

У меня проблема с кодом ниже:

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

Решение

В отличие от переменных экземпляра, которые требуют только объявления, статические переменные-члены класса также должны быть определенный.

В настоящее время ваш код содержит только декларацию. Добавить определение вашей статики fd Переменная в файл cpp для исправления ошибки:

int ProgrammSettings::fd;
7

Другие решения

Вам нужно добавить следующую строку в начало вашего файла cpp

 int ProgrammSettings::fd;
2

Объявления членов статических данных в объявлении класса не являются их определением
Вы забыли добавить определение, соответствующее вашей декларации fd,
Вы должны явно определить члены статических данных вашего класса.

1
По вопросам рекламы [email protected]