hello,
je ne sais pas si c'est pemis par la norme ou pas, mais beaucoup de compilateurs refusent en effet de faire ce que tu fais. Il faut donc procéder ainsi:
1. Tu déclares ta variable dans la déclaration de la classe
Code :
- // TOTO.hpp
- class TOTO
- {
- //...
- static const int nbreel;
- };
|
2. Tu affectes la variable à cette valeure dans le fichier de définition de cette classe, en entête de fichier:
Code :
- //TOTO.cpp
- #include "TOTO.hpp"
- const int TOTO::nbreel=10;
- // etc... la suite de ton fichier
|
Et normalement cela devrait passer.
Souvent, quant tu affectes une variable static const dans la déclaration même de la classe, le compilo croit que tu veux en faire une variable virtuelle pure, et c'est pour cela qu'il attends un =0.
D'autre part, affecter la valeur de ta variable dans le construteur est doublement incorrecte:
1. C'est interdit car la c'est une constante. On ne peut donc pas lui affecter de valeur.
2. Si c'était valide, tu initialisera la valeur à chaque fois qu'une instance de la classe est crée.
a+