Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/01/2010, à 16:21

Creak

Un static const dans une bibliothèque

Hello!

J'ai fait une expérience étrange ce matin avec du C++...
J'ai créé une class A avec un static const à l'intérieur, déclaré et défini. Ca donnait ça:

// A.h
class A
{
public:
    static const int B = -1;
};

J'utilise cette variable dans A.cpp et ça compile bien. Je fais de tout ça une bibliothèque: liba.so
Mais quand je link cette lib à mon exe, le linker me dit que A::B n'est pas reconnu dans A.cpp.

Par contre, si je défini B dans A.cpp comme ceci:

// A.h
class A
{
public:
    static const int B;
};

// A.cpp
const int A::B = -1;

Et bien ça fonctionne sans pb, je peux linker mon programme avec liba.so.
J'avoue ne pas comprendre pourquoi ça ne fonctionne que comme ça... qqun aurait une explication?

Hors ligne