Variables static (c++)

garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 - 21 avril 2004 à 10:16
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 - 21 avril 2004 à 13:54
Salut à tous,

je fais une appli utilisant un fichier de conf INI. Ma classe Settings est du style:

class Settings
{
public:
Settings();
~Settings();
static void init();

static int valeur1;
static int valeur2;
}

La méthode init() lit le fichier INI et écrit dans valeur1 et valeur2.

Je voudrais pouvoir faire qc comme Settings::valeur1 et y accéder depuis n'importe quelle autre classe.

Pour l'instant dans le main() je fais: Settings::init();
Et dans mes autres classes qqc du genre
void MaClasse::MaFonction()
{
printf("%d", Settings::valeur1);
}

Mais ça ne fonctionne pas, le compilateur (g++) dit (à l'édition de liens)
maclasse.cpp:126: undefined reference to `Settings::valeur1'
settings.cpp:69: undefined reference to `Settings::valeur1'
*
settings.o(.text+0x281):settings.cpp:70: undefined reference to 'Settings::valeur1'

Càd que même dans la fonction inti(), l'accès à Settings::valeur1 pose problème

Heeeeeelp....

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac

1 réponse

Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
21 avril 2004 à 13:54
Il faut ajouter

int Settings::valeur1;
int Settings::valeur2;

dans un fichier .cpp.
0
Rejoignez-nous