Cheres amies et amis du forum
J'ai recupere une classe C++ pour le calcul de fraction, cependant lorsque j'effectue une opération il me retourne une abération (voir image)
En gros les affectations au variable fraction fonctionne mais lorsque le calcul s'effectue l'operateur surchargé "=" n'affecte pas la valeur, ou l'operateur surchargé "<< " n'affiche pas le resultat du calcul
voici le bout de code impliquer
fraction.hfraction.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
25
26 class Fraction { int Num; int Denom; public : //constructeurs Fraction(const int, const int); Fraction(const int); Fraction(); //Opérateuns d'action Fraction& operator+(const Fraction&); Fraction& operator+(const int&); Fraction& operator=(const Fraction&); Fraction& operator=(const int&); //Fonctions amies friend ostream& operator<<(ostream&, Fraction&); //opérateurs de flux (ex : cout) friend istream& operator>>(istream& , Fraction&); //opérateurs de flux (ex : cin) friend int Pgcd(const int&,const int&); // trouve le plus grand diviseur commun entre i1 et i2 //Fonctions diverses Fraction& Simp(); //Simplifie une fraction Fraction& Puis(const int&); //comme un opérateur puissance Fraction& Inv(); //Inverse la fraction int Signe(); // 1 = positif ou nul -1 = négatif void MemeDenom(Fraction&,Fraction&); // met les deux fractions au meme dénominateur
Merci
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
37
38
39
40
41
42
43 //##########################____CONSTRUCTEURS____############################### Fraction::Fraction(const int Numerateur,const int Denominateur) { Num=Numerateur; Denom =Denominateur; } //############################################################################## Fraction::Fraction() { Num=0; Denom=1; } //############################################################################## Fraction::Fraction(const int Entier) { Num=Entier; Denom =1; } fonction de classe Fraction& Fraction::operator+(const Fraction &F) { Fraction FRes = *this; Fraction FInter = F; MemeDenom(FInter, FRes); FRes.Num += FInter.Num; return FRes.Simp(); } Fraction& Fraction::operator=(const Fraction &F) { Num=F.Num; Denom=F.Denom; return *this; } ostream& operator<<(ostream& out, Fraction& F) { out << F.Num << "/" << F.Denom; return out; }
Partager