(mingw) link error bizarre [Résolu]

Signaler
Messages postés
101
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
25 février 2009
-
Messages postés
101
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
25 février 2009
-
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

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

class A{
    static std::vectorfrere;
    A(){frere.push_back(this);};
};
std::vectorA::frere;

merci

FoxZ...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Tu dois déclarer frere dans un fichier source cpp de la manière suivante:

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

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...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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
Messages postés
101
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
25 février 2009

class A{
    public:
    A(){
        frere.push_back(this);
    };
};
std::vectorA::frere;

???

meme avec le prefix static

ca ne marche pas !

FoxZ...