bonjour à tous,
je suis en train d'apprendre la poo en faisant un programme qui manipule des fractions, je voudrais modifier l’opérateur << pour qu'il affiche les fractions sous la forme a/b sauf que je souhaite rendre privés les attributs numérateur et dénominateur de ma fraction du coup je ne sais pas comment y accéder (enfin j'ai bien quelques idées mais je cherche la "bonne" façon de faire.
voici mon code:
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 class Fraction { public: Fraction(int numerateur, int denominateur) noexcept; void simplification() noexcept; double valeur_reelle() const noexcept; private: int m_numerateur; int m_denominateur; }; //constructeur: Fraction::Fraction(int numerateur, int denominateur) noexcept : m_numerateur(numerateur), m_denominateur(denominateur) { assert(m_denominateur != 0, "le denominateur ne peut pas valoir 0"); } void Fraction::simplification() noexcept { m_numerateur /= std::gcd(m_numerateur, m_denominateur); m_denominateur /= std::gcd(m_numerateur, m_denominateur); } double Fraction::valeur_reelle() const noexcept { return double(m_numerateur) / m_denominateur; } std::ostream& operator <<(std::ostream flux, Fraction f) { return flux << f.m_numerateur << '/' << f.m_denominateur; // c'est la que ça bloque } int main() { //mon main }
Partager