Bonjour
Le programme suivant compile bien.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
 
// Quelques" #include" inutiles, sans aucun doute !
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <cmath>
#include <Windows.h>
#include <cstdlib>
 
using namespace std;
 
class toto
{
    public:
 
    static const int m_const = 5 ; // la constante est crée et initialisée (de la place mémoire a été allouée)
    static int m_var ;  // la variable est déclarée mais n'a aucune existence (aucune place mémoire allouée)
 
    toto(){} ;
    ~toto(){} ;
 
};
 
int toto::m_var = 12; // la variable est crée seulement maintenant et initialisée (0 par défaut)
 
 
int main()
{
    cout<<"m_const = "<<toto::m_const<<", m_var = "<<toto::m_var<<endl;
 
    return 0;
}
Il me semble qu'il serait plus pratique d'écrire dans le corps de la classe
mais ce n'est pas possible.

Ma question est : Il y a-t-il une raison pour traiter différemment les variables statiques et les constantes statiques ?

Merci d'avance