Bonjour
Un polynôme est représenté par un tableau de ses coefficients. Le coefficient du monôme de degré i est rangé dans l’élément de rang i du tableau des coefficients.
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
class Polynome{
           friend Ostream& operator<<(ostream&, const Polynome&);
           friend istream& operator>>(istream&, Polynome&);
private:
	int taille;
	double* coefficients;
public:
	Polynome(); 
	Polynome(int);
	Polynome(Polynome&);
	~Polynome() ;
	void set_taille(int) ;
	void set_coefficients(double* ) ;
	int get_taille( ) ;
	double* get_coefficients( );
	int degre();
	double coefAt(int) ;
           Polynome operator+( const Polynome& );
           Polynome operator*(const Polynome& p);
           Polynome operator*(double);
	bool operator==( const Polynome& );
	const Polynome& operator=(const Polynome&);
           Polynome operator+=(const Polynome& );
           Polynome operator*=(const Polynome& );
           double calculValPolynome(double);
};
on est arrivé a la surdefinition de l'operateur +, voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Polynome Polynome:: operator+( const Polynome& p){
	Polynome pp;
	if(this->taille>=p.taille)
		pp.taille=this->taille;
	else 
		pp.taille=p.taille;
	int i=0;
	while(i<pp.taille){
		pp.cf[i]=coefAt(i)+p.coefAt(i);
		i++;
 
		} return pp;
}
mais il donne une erreur:
error C2662: 'coefAt' : cannot convert 'this' pointer from 'const class Polynome' to 'class Polynome &'Conversion loses qualifiers


NB:la méthode coefAt(int i) retourne la valeur du coefficient de rang i.