#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