2012-12-01 7 views
3

J'AHVE un problème avec un code ci-dessous:symbole externe non résolu C++

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

Ce que je fais mal ? Merci!

Répondre

7

Contrairement aux variables d'instance qui ne nécessitent qu'une déclaration, les variables de membre statiques de la classe doivent également être définies.

Actuellement, votre code contient uniquement une déclaration. Ajouter une définition de votre fd statique variable à un fichier cpp pour corriger l'erreur:

int ProgrammSettings::fd; 
2

Vous devez ajouter la ligne suivante au début de votre fichier cpp

int ProgrammSettings::fd; 
1

membres de données statiques les déclarations dans la déclaration de classe ne sont pas la définition d'elles Vous avez oublié d'ajouter la définition pour correspondre à votre déclaration de fd.
Vous devez définir explicitement les membres de données statiques de votre classe.