3

I ahve a problem with a code below:

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;
}

What i'm doing wrong? Thanks!

Roman
  • 69
  • 4
  • 10

3 Answers3

7

Unlike instance variables that require only a declaration, static member variabs of the class must also be defined.

Currently, your code contains only a declaration. Add a definition of your static fd variable to a cpp file to fix the error:

int ProgrammSettings::fd;
Sergey Kalinichenko
  • 714,442
  • 84
  • 1,110
  • 1,523
2

You need to add the following line to the start of your cpp file

 int ProgrammSettings::fd;
Ed Heal
  • 59,252
  • 17
  • 87
  • 127
1

Static data members declarations in the class declaration are not definition of them You have forgot to add the definition to match your declaration of fd.
You must explicitly define your class's static data members.

Ravindra Bagale
  • 17,226
  • 9
  • 43
  • 70