POO : Langage C++
Séquence 2 : Fonctions amies et surcharges d’opérateurs
POO : Langage C++
Dr Khalifa SYLLA
Séquence 2 : Fonctions amies et surcharges d’opérateurs
Exercice de Travaux Dirigés de la séquence 2 :
Exercice 1
Soit la classe point suivante : class point { int x, y ; public : point (int abs=0, int ord=0) { x = abs ; y = ord ; } }
;
Écrire une fonction indépendante affiche, amie de la classe point, permettant d’afficher les coordonnées d’un
point. On fournira séparément un fichier source contenant la nouvelle déclaration (définition) de point et un
fichier source contenant la définition de la fonction affiche. Écrire un petit programme (main) qui crée un point
de classe automatique et un point de classe dynamique et qui en affiche les coordonnées.
Exercice 2
Créer deux classes (dont les membres donnés sont privés) :
L’une, nommée vect, permettant de représenter des vecteurs à 3 composantes de type double; elle comportera
un constructeur et une fonction membre d’affichage ;
L’autre, nommée matrice, permettant de représenter des matrices carrées de dimension 3 x 3 ; elle
comportera un constructeur avec un argument (adresse d’un tableau de 3 x 3 valeurs) qui initialisera la
matrice avec les valeurs correspondantes. Réaliser une fonction indépendante prod permettant de fournir le
vecteur correspondant au produit d’une matrice par un vecteur. Écrire un petit programme de test. On
fournira séparément les deux déclarations de chacune des classes, leurs deux définitions, la définition de
prod et le programme de test.
Dr Khalifa SYLLA 1
POO : Langage C++
Séquence 2 : Fonctions amies et surcharges d’opérateurs
Exercice 3
Soit la classe vecteur 2d qui contient les coordonnées du vecteur, un constructeur initialisant les données
membres avec des valeurs par défaut à 0.
Définir les opérateurs suivants + ,* et - pour qu’ils fournissent respectivement la somme, le produit scalaire et
la différence de deux vecteurs.
Créer un programme permettant de tester cette classe.
Exercice 4
Créer une classe « Fraction » permettant de manipuler des fractions de la forme : a/ b où a et b sont des entiers
(b ≠ 0).
Cette classe doit renfermer les opérations suivantes :
- constructeur
- destructeur
- affectation ( = )
- opérations arithmétiques (+, -, *, /)
- comparaisons (==, !=, , <=, >=)
- négation ( - )
- entrée et sortie (<>)
L’entrée et la sortie des fractions se font sous la forme a / b. Le caractère / est entré au clavier et affiché à
l’écran. Lorsque l’une des opérations précédentes retourne une fraction, elle doit retourner une fraction sous sa
forme simplifiée :
3 1
→ .
9 3
Dr Khalifa SYLLA 2