arbixy
Messages postés2Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention22 octobre 2008
-
19 oct. 2008 à 19:22
GurneyH
Messages postés6Date d'inscriptionmardi 14 octobre 2008StatutMembreDernière intervention24 octobre 2008
-
24 oct. 2008 à 05:41
Bonjour,
J'ai un souci de linking avec un morceau de code, et je vous avoue que je n'ai pas la moindre idée de pourquoi.
Voila le code incriminé :
//A.h
class A
{
public:
static int a;
static void f();
};
//A.cpp
void A::f()
{
a = 2;
};
Lorsque je compile le tout, un problème au linking se présente, pretextant qu'il lui est impossible de trouver le symbole "a".
Par contre, si j'implémente la méthode f dans la classe A directement ou si je l'implémente dans le fichier cpp avec le mot-clé inline alors tout se passe bien.
Quelqu'un saurait me dire pourquoi ? Moi je seche.
GurneyH
Messages postés6Date d'inscriptionmardi 14 octobre 2008StatutMembreDernière intervention24 octobre 2008 20 oct. 2008 à 14:18
Salut,
L'exemple de SAKingdom te montre bien la solution.
Cependant, pour être plus précis, voici une petite précision concernant l'initialisation des variables statiques.
-L'initialisation est impérativement unique.
-L'initialisation se trouve dans le fichier d'implémentation de la classe (.cpp), en rappelant tous les éléments du contexte (type de variable et classe d'appartenance.)