Impossible de lier deux fichiers après, lorsque je supprime le mot clé "statique", alors ça va. Testé avec g ++. Vérifiez avec liself pour le fichier objet, le membre statique semble être exporté comme un symbole d'objet global ... Je pense que ce devrait être un objet local ...?Définition multiple pour un membre statique?
static1.cpp
class StaticClass
{
public:
void setMemberA(int m) { a = m; }
int getMemberA() const { return a; }
private:
static int a;
};
int StaticClass::a = 0;
void first()
{
StaticClass statc1;
static1.setMemberA(2);
}
static2.cpp
class StaticClass
{
public:
void setMemberA(int m) { a = m; }
int getMemberA() const { return a; }
private:
static int a;
};
int StaticClass::a = 0;
void second()
{
StaticClass statc1;
static1.setMemberA(2);
}
avec des informations d'erreur:
/tmp/ccIdHsDm.o:(.bss+0x0): multiple définition de `StaticClass :: a '
@Ropez: ça marche bien. Merci :) –
Je me sens mal avec l'état des choses, puisque la réponse de ropez semble t'avoir donné la solution que tu cherchais. n'hésitez pas à déplacer la coche à son :) :) +1 pour lui, de toute façon. –
@Litb, vous avez tous les deux raison :) vous avez expliqué plus. –