(mingw) link error bizarre

Résolu
cs_foxz
Messages postés
101
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
25 février 2009
- 24 août 2007 à 12:12
cs_foxz
Messages postés
101
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
25 février 2009
- 25 août 2007 à 20:11
class A{
    public:
    static std::vector frere;
    A(){
        frere.push_back(this);
    };
};

undefined link ref to A::frere;

question pour les specialistes : c pas safethread ca ???

FoxZ...

5 réponses

cs_foxz
Messages postés
101
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
25 février 2009

25 août 2007 à 20:11
class A{
    static std::vectorfrere;
    A(){frere.push_back(this);};
};
std::vectorA::frere;

merci

FoxZ...
3
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
24 août 2007 à 20:10
Tu dois déclarer frere dans un fichier source cpp de la manière suivante:

std::vectorUn éditeur de ressources gratuit pour Windows
0
cs_foxz
Messages postés
101
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
25 février 2009

25 août 2007 à 12:45
euh... non, non, je veux le declaré en static...

je veux que toutes les intances de A se connaissent (par l'intermediaire de frere)

FoxZ...
0
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
12
25 août 2007 à 13:42
Oui c'est bien ca. Il faut aussi le déclarer en dehors de la classe.
Par contre j'ai fait une erreur, il faut écrire ceci :

std::vectorUn éditeur de ressources gratuit pour Windows
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_foxz
Messages postés
101
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
25 février 2009

25 août 2007 à 20:08
class A{
    public:
    A(){
        frere.push_back(this);
    };
};
std::vectorA::frere;

???

meme avec le prefix static

ca ne marche pas !

FoxZ...
0