Bonjour, j'ai une classe que voici :

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;};
 
};
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
 
#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;
  }
}
Mon constructeur Classe::Classe(int num, double ward, double ind, const Classe & c1, const Classe & c2) a une erreur à la compilation :

error C2662: 'Classe::getNum' : cannot convert 'this' pointer from 'const Classe' to 'Classe &'
1> Conversion loses qualifiers
je ne vois pas trop ce que je dois changer...

Sinon, dans mon "Classe.h", que dois-je mettre

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;
Merci d'avance