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
|
#include <iostream>
#include <cstdlib>
using namespace std;
class Q{
public:
int num; // stocke le numérateur
int den; // stocke le dénominateur
Q(int a=0,int b=1); // le constructeur de la classe Q (le nombre 1 par défaut)
Q operator+(Q a); // Définit l'opérateur + // Le premier Q désigne le type de sortie
void show(); // Affiche le nombre rationnel // void est un type vide, il n'a pas de type
};
Q::Q(int a,int b){ // Le constructeur // le constructeur est une méthode
num=a;
den=b;
}
Q Q::operator+(Q a){
Q t; // crée un nouveau nombre rationnel // Le Q le plus à gauche, désigne le type de sortie de la méthode, alors que le deuxième dans Q::operator permet d'accéder à la méthode de la classe Q
t.num=num*a.den+den*a.num; // stock le numérateur des nombres additionnés
t.den=den*a.den; // stock le dénominateur des nombres additionnés.
return t; // retourne le résultat de l'addition
}
void Q::show(){
std::cout << num << " / " << den << " = " << (float)(num)/(float)(den) << "\n";
}
int main(void){ // le type d'élément de sortie de la fonction principale main est le type entier. preuve : return 0
Q a(3,4),b(1,2); // définit deux nouveaux nombres rationnels a et b
a=a+b; // additionne a et b est stocke le résultat sous a.
a.show(); // affiche a
return 0;
} |
Partager