Bonjour à tous,

J'ai un souci de compil dans un case de mon switch. J'essaie de lui donner un membre de ma classe, qui est déclaré en static const :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
class MyClass{
public:
    static const int MA_CONST = 0;
};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
switch(bidule){
 
case MA_CONST:...
}
Lorsque je fais comme ceci, pas de souci.

Maintenant je veux initialiser MA_CONST dans le .cpp, et non pas dans le .h directement, et c'est là que j'obtiens une erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
class MyClass{
public:
    static const int MA_CONST;
};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
const int MyClass::MA_CONST = 0;
J'aimerais comprendre pourquoi. Le compilo n'est-il pas capable de voir que le membre est tout de même déclaré en const (même si pas initialisé directement) ?

Merci pour vos lumières.