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
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ù ?
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.