Classe : initialisation d'une variable statique
Bonjour :coucou:
Le programme suivant compile bien.
Code:
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
Code:
static int m_var = 12;
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