Bonjour � tous,

Je voudrais savoir comment d�finir correctement des constantes dans une classe de tel fa�on que chaque objet de cette classe est cette vealeur constante.

Je m'explique, je voudrais que l'attribut "Cout" soit une valeur constante de la classe "Noeud".

Donc j'ai d�finit la classe suivante dans Noeud.h:

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
class Noeud
{
public :
//Constructeur
Noeud(int k);
 
//Accesseurs
int get_Num(); 
bool get_Etat();
 
//Modificateur
void set_Etat(bool a); 
 
void afficher();
 
protected :
 
//Attributs d'un Noeud
const int Num;     //Num�ro du Noeud
static const float Cout;                      //Cout du Noeud
bool Etat;
};
#endif
et voici l'impl�mentaton de cette m�me classe dans "Noeud.cpp":

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
Noeud::Noeud(int k)
{
Num = k;
//Description des diff�rents couts
float Mat_EXC = 20.44;
float Mat_OXC = 10.78;
float Site_Noeud = 7.67;  
Cout = Mat_EXC + Mat_OXC + Site_Noeud;
}
//Accesseurs
int Noeud::get_Num() {return Num;}
bool Noeud::get_Etat() {return Etat;}
 
//Modificateur
//void Noeud::set_Num(int a) {Num = a;}
void Noeud::set_Etat(bool a) {Etat = a;}
 
void Noeud::afficher()
{
cout << "N[" << Num << "] = " << Etat << endl;
}
Comme on peut voir "Cout = Mat_EXC + Mat_OXC + Site_Noeud", et donc l'initialisation de la variable "Cout" se fait lors de la cr�ation de l'objet et est d�finit gr�ce � l'impl�mentation dans "Noeud.cpp".

Est il possible d'�crire:

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
float Mat_EXC = 20.44;
float Mat_OXC = 10.78;
float Site_Noeud = 7.67;  
static const float Cout = Mat_EXC + Mat_OXC + Site_Noeud;
ou quelque chose du genre dans mon fichier "Noeud.h" ou "Noeud".cpp

Mon probl�me est que j'ai appris le JAVA avant de me lancer dans le C++ et j'ai donc du mal � saisir le principe d'�criture de classe en C++.

Merci de pouvoir m'�clairer.