#include // pourquoi accepte-t-il le set sur la variable const? class Rationnel{ private: int numerateur; int denominateur; public: Rationnel(void); Rationnel(int n, int d); Rationnel(const Rationnel & x); int getNumerateur(void) const; int getDenominateur(void) const; Rationnel & setNumerateur(int n); Rationnel & setDenominateur(int d); void afficher(void) const; Rationnel & operator=(const Rationnel & x); }; void IncrementNum(Rationnel X); int main(void){ Rationnel F(3,4); Rationnel G, H; const Rationnel UneDemi(1,2); cout << "\n"; F.afficher(); cout << "\n"; F = UneDemi; // assignation F.afficher(); cout << "\n"; G = H = UneDemi; G.afficher(); cout << "\n"; H.afficher(); cout << "\n"; return 0; } Rationnel::Rationnel(void): numerateur(1), denominateur(1) { } Rationnel::Rationnel(int n, int d): numerateur(n), denominateur(d) { } Rationnel::Rationnel(const Rationnel & x){ numerateur = x.getNumerateur(); denominateur = x.getDenominateur(); cout << "\ndans le constructeur de copie"; } int Rationnel::getNumerateur(void) const { return numerateur; } int Rationnel::getDenominateur(void) const{ return denominateur; } void Rationnel::afficher(void) const{ cout << "(" << numerateur << " / " << denominateur << ")"; } Rationnel & Rationnel::setNumerateur(int n) { numerateur = n; return *this; } Rationnel & Rationnel::setDenominateur(int d){ denominateur = d; return *this; } void IncrementNum(Rationnel X){ X.setNumerateur(X.getNumerateur() + 1); cout << "\n"; X.afficher(); cout << "\n"; } Rationnel & Rationnel::operator=(const Rationnel & x){ numerateur = x.getNumerateur(); denominateur = x.getDenominateur(); return *this; }