Bonjour, j'ai une classe que voici :
dont l'implementation est :
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
35
36 class Classe { private : int _num; /* numero de la classe */ int _aine, _benj; int _eff; /* effectif de la classe : somme des effectifs des classes ainee et benjamin */ double _ward; /* critere de ward */ double _ind; /* indice d'agregation */ public : /* constructeur par defaut */ Classe(); /* constructeurs */ Classe(int num); Classe(int num, double ward, double ind, const Classe & c1, const Classe & c2); /* destructeur */ ~Classe() {}; /* renvoie la valeur du critere de Ward */ const double & getWard() {return _ward;}; /* renvoie la valeur de l'indice d'agregation */ const double & getIndice() {return _ind;}; /* renvoie la valeur de l'effectif de la classe */ const int getEffectif() {return _eff;}; /* renvoie la valeur du numero de la classe */ const int & getNum() {return _num;}; };
Mon constructeur Classe::Classe(int num, double ward, double ind, const Classe & c1, const Classe & c2) a une erreur à la compilation :
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 #include "Classe.h" /* constructeur par defaut */ Classe::Classe() { _num = _aine = _benj = _eff = 0; _ward = _ind = 0.; } /* constructeurs */ Classe::Classe(int num) { _num = _aine = _benj = num; _eff = 1; _ward = _ind = 0.; } Classe::Classe(int num, double ward, double ind, const Classe & c1, const Classe & c2) { int num1 = c1.getNum(), num2 = c2.getNum(); _num = num; _ward = ward; _ind = ind; _eff = c1.getEffectif() + c2.getEffectif(); if(num1 < num2) { _aine = num1; _benj = num2; } else /* num1 > num2 car par construction on sait que num1 != num2 */ { _aine = num2; _benj = num1; } }
je ne vois pas trop ce que je dois changer...error C2662: 'Classe::getNum' : cannot convert 'this' pointer from 'const Classe' to 'Classe &'
1> Conversion loses qualifiers
Sinon, dans mon "Classe.h", que dois-je mettre
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1) double getWard() {return _ward;}; 2) const double getWard() {return _ward;}; 3) const double getWard() {return _ward;} const; 4) const double & getWard() {return _ward;} const;
Partager