问题
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!
回答1:
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;
回答2:
You need to add the following line to the start of your cpp file
int ProgrammSettings::fd;
回答3:
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.
来源:https://stackoverflow.com/questions/13660017/unresolved-external-symbol-c