Bonjour,

j'essaye de créer une classe fraction pour additionner, multiplier, et comparer (égal, plus grand, plus petit) des fractions.
Mais j'ai pas mal de problèmes:
-Mon compilateur considere mon constructeur comme une fonction. Et du coup je ne peut rien faire.
-J'ai crée des valeurs de base pour mon constructeur, mais impossible d'en initialiser une seul (il demande 2 arguments obligatoirement).

Main.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
#include <iostream>
#include <string>
#include "Zfraction.h"
 
using namespace std;
 
int main()
{
 
    Zfraction a(4,5);      //Déclare une fraction valant 4/5
    Zfraction b(2);        //Déclare une fraction valant 2/1
    Zfraction c,d;         //Déclare deux fractions valant 0/1
 
return 0;
}
Zfraction.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
27
28
29
30
#include "Zfraction.h"
 
 
Zfraction::Zfraction()
{
    m_numerateur = 0;
    m_denominateur = 1;
}
 
Zfraction::Zfraction(int numerateur, int denominateur)
{
    m_numerateur(numerateur);
    m_denominateur(denominateur);
}
Zfraction::Zfraction(int numerateur)
{
    m_numerateur(numerateur);
    m_denominateur = 1;
}
 
Zfraction::int pgcd(int a, int b)
{
    while (b != 0)
    {
        const int t = b;
        b = a%b;
        a=t;
    }
    return a;
}

Zfraction.h
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
#ifndef ZFRACTION_H_INCLUDED
#define ZFRACTION_H_INCLUDED
#include <iostream>
 
class Zfraction
{
public:
    Zfraction();
    Zfraction(int numerateur, int denominateur);
    Zfraction(int numerateur);
    int pgcd(int a, int b);
 
private:
    int m_numerateur;
    int m_denominateur;
};
 
#endif // ZFRACTION_H_INCLUDED
C'est peut être simple mais ca fait quelque jours que je programme plus j'ai peut être oublier quelque bases.
En tout cas merci a vous !