M1103 Mini-feuille 3

Exercice 1 — Points géométriques avec opérateurs

Téléchargez le fichier code.zip et ajoutez son contenu (les fichiers point.cpp, point.h, test.cpp, test.h, asserts.h) à un nouveau projet Code::Blocks.

La classe Point a déjà été définie pour vous pour modéliser un point géométrique de dimension arbitraire. Elle contient notamment :

a — Addition

Nous ferons attention à ne pas changer les points donnés en argument. En particulier, nous allons retourner un nouveau point.

Nous commençons avec la définition d’un opérateur d’addition pour deux point géométriques.

Rajouter un opérateur + qui prend deux (références constantes à des) Point. Il retourne un Point dont les entrées sont les sommes des entrées des deux arguments au même indice.

Si les dimensions des deux points ne sont pas égales, lancer une exception de type invalid_argument.

Vous pouvez tester votre opérateur en lançant le programme dont la fonction main est définie dans le fichier test.cpp.

b — Soustraction

Nous allons maintenant rajouter un opérateur de soustraction de deux points. L’implémentation sera similaire à celle de l’opérateur d’addition.

Rajouter un opérateur - qui prend deux (références constantes à des) Point. Il retourne un Point dont les entrées sont les différences des entrées des deux arguments au même indice.

Si les dimensions des deux points ne sont pas égales, lancer une exception de type invalid_argument.

Vous pouvez tester votre opérateur en lançant le programme dont la fonction main est définie dans le fichier test.cpp.

c — Affichage

Il est conseillé de regarder le code montré lors de l’amphi 3 pour un exemple d’une implémentation de l’opérateur << pour la classe Date.

En particulier, on note que le premier argument ainsi que la valeur de retour a le type ostream & (donc une référence à un output stream, comme par exemple cout).

Pour pouvoir afficher nos points géométriques plus facilement, nous allons rajouter l’opérateur << pour pouvoir écrire cout << p << endl;p est une instance de la classe Point.

Rajouter un opérateur << pour pouvoir afficher le contenu d’un point. Toute entrée du point doit être suivie d’un saut de ligne.

Vous pouvez tester votre opérateur en lançant le programme dont la fonction main est définie dans le fichier test.cpp.

retour au site web du cours