static const - C++ - Programmation
Marsh Posté le 18-07-2002 à 07:35:52
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 :
|
2. Tu affectes la variable à cette valeure dans le fichier de définition de cette classe, en entête de fichier:
Code :
|
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+
Marsh Posté le 18-07-2002 à 08:29:33
SoWhatIn22 a écrit a écrit : 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
|
c'est effectivement comme celà qu'il faut faire, mais s'il travail avec visual ça passe pas, en tout cas sur la version ,(non pas de polémique sur visual on en a assez parlé ). Si c le cas ben oublie les membre const.
Marsh Posté le 18-07-2002 à 08:55:19
letoII a écrit a écrit : c'est effectivement comme celà qu'il faut faire, mais s'il travail avec visual ça passe pas, en tout cas sur la version ,(non pas de polémique sur visual on en a assez parlé ). Si c le cas ben oublie les membre const. |
Bien sûr que cela fonctionne avec Visual. Je viens de faire le test.
Code :
|
Code :
|
Code :
|
tu mets tout ca dans une application console, tu compiles et tu lances. Ca fonctionne très bien.
Visual a plein de défauts, mais faut pas pousser quand même
Marsh Posté le 18-07-2002 à 09:01:49
Perso je l'utilise mais j'i un pote qui m'a dit que ça passait pas.
T'as quel version là?
Marsh Posté le 18-07-2002 à 20:13:51
merci bcp pour vos reponses, je vais essayer (j'attendais que le forum ouvre....)
Marsh Posté le 18-07-2002 à 20:31:37
ca marche tres bien mais...... encore un petit prob: j'ai un tableau en static const:
Code :
|
et lors de l'affectation:
Code :
|
ca me met:
error C2373: 'public: static double const (* Individu::tablbornes)[8]' : redefinition; different type modifiers
Marsh Posté le 18-07-2002 à 20:34:16
Je savais bien que ça chiait avec visual
Marsh Posté le 18-07-2002 à 20:50:38
LetoII a écrit a écrit : Je savais bien que ça chiait avec visual |
merde j'ai visual 6....
ca compile sous GCC?
Marsh Posté le 18-07-2002 à 21:12:06
LetoII a écrit a écrit : ouai, me semble que j'ai essayé |
ok merci je vais essayer demain
Marsh Posté le 19-07-2002 à 09:53:31
Est-ce que c'est réellement utile qu'une constante soit statique ? si oui dans quel cas (éclairez moi)
Marsh Posté le 19-07-2002 à 09:56:18
Ben c utile dans ce cas là par ce que c un mebre de classe, c'est à dire un membre dont la valeur est commune à toutes les instances de la classes.
Marsh Posté le 18-07-2002 à 01:55:52
j'ai une variable en static const dans une classe .h,
au debut j'avais mis:
et j'avais l'erreur error C2258: illegal pure syntax, must be '= 0'
apres recherche j'ai vu qu'il fallait mettre un constructeur pour initialiser nbreel j'ai donc fait mon constructeur:
mais la j'ai l'erreur suivante: error C2166: l-value specifies const object
qq peut m'aider?
---------------
Sphincter lent [:morpheus67] smiley mauve © DarkMavis [:humpty dumpty]