Attribut de classe de la STL

cs_MLine Messages postés 20 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 11 juin 2003 - 12 mai 2003 à 17:38
cs_MLine Messages postés 20 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 11 juin 2003 - 13 mai 2003 à 14:10
Slut,
je définis un attribut de classe :
static vector<vector<Organism*> > vectorg;
qui est donc un tableau de pointeurs sur des instances de la classe Organism.
Je l'utilise dans une autre classe amie:
Organism::vectorg.resize(nx);
et aussi dans une fonction qui n'est membre d'aucune classe, en écrivant :
Organism::getVectorg()[ix][iy]

Mais il y a manifestement un problème, voilà l'erreur que j'obtiens:
[Linker Error] Unresolved external 'Organism::vectorg' referenced from C:\... (je vous mets pas tout le chemin, mais il s'agit du fichier objet gap_unit1.obj)

Je ne comprends pas cette erreur et ce qu'il faut corriger.
Si vous avez une idée... Merci
MLine

4 réponses

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
12 mai 2003 à 17:54
Est-ce que tu n'aurais pas oublié cette ligne dans ton fichier CPP:
vector<vector<Organism*> > MACLASSE::vectorg;

Kaid - kaid.fr.st
0
cs_MLine Messages postés 20 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 11 juin 2003
12 mai 2003 à 18:13
euh... la déclaration
static vector<vector<Organism*> > vectorg;
a lieu dans la classe, donc dans le header gap_unit.h. (pas besoin de spécifier MACLASSE donc)

Il faut vraiment redéclarer ça :
vector<vector<Organism*> > MACLASSE::vectorg;
dans le cpp ??? Si oui, où ?
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
13 mai 2003 à 11:11
Pour déclarer un attribut statique dans une classe il faut ajouter la ligne que je t'ai donné dans le CPP, juste après l'inclusion des headers par exemple. C'est comme ca pour tous les attributs statiques.

Kaid - kaid.fr.st
0
cs_MLine Messages postés 20 Date d'inscription jeudi 8 mai 2003 Statut Membre Dernière intervention 11 juin 2003
13 mai 2003 à 14:10
Merci beaucoup ;)
0
Rejoignez-nous