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:
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
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part //Constructeur
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".
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; }
Est il possible d'écrire:
ou quelque chose du genre dans mon fichier "Noeud.h" ou "Noeud".cpp
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;
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.
Partager