Vous êtes sur la page 1sur 2

Mohammed AIRAJ

GSEII-1
ENSAF 2022/2023

TP C++ : Héritage et Polymorphisme


Exercice 1 :
On dispose d’un fichier point.h contenant la déclaration suivante de la classe point (voir
TP1/Exercice1) :
#pragma once
class point
{
private:
float x, y;
public:
point (float=0.0, float=0.0);
void affiche ();
void deplace (float, float);
};

1- Créer une classe pointcol, dérivée de point, comportant :


 un membre donnée supplémentaire cl, de type int, contenant la « couleur » d’un point ;
 les fonctions membre suivantes :
 affiche (redéfinie), qui affiche les coordonnées et la couleur d’un objet de type
pointcol ;
 colore (int couleur), qui permet de définir la couleur d’un objet de type pointcol,
 un constructeur permettant de définir la couleur et les coordonnées.
2- Créer une classe pointcol possédant les mêmes caractéristiques que ci-dessus, mais sans
faire appel à l’héritage. Quelles différences apparaîtront entre cette classe pointcol et celle de
la question précédente ?

Exercice 2 :
1- Créer une classe de base Article. Un article possède deux champs privés :
• Nom : string
• Prix : double
et les opérations publiques :
• getPrix() : pour retourner le prix de l'article
• setPrix(double) : pour changer le prix de l'article
• afficher() : permet d’afficher le prix.

2- Réaliser ensuite une classe ArticleEnSolde, dérivée de la classe Article. Cette sous-classe
comprend les éléments additionnels :
• remise : pourcentage de réduction sur le prix d'origine
• setRemise(entier) pour changer la remise.
La classe va redéfinir la méthode getPrix(), afin de tenir compte du solde. Elle va également
redéfinir la méthode afficher(), afin que l'affichage donne également le pourcentage de remise
sur le prix d'origine.

3- Faites une méthode main de test.


Exercice 3 :
Soient les phrases suivantes :
 Un répertoire contient des fichiers
 Les modems et claviers sont des périphériques d’entrée / sortie
 Une transaction boursière est un achat ou une vente
 Un compte bancaire appartient à une personne.

Pour chaque phrase, définir (sans coder) les classes et le type de relation entre ces classes (héritage
ou autre).

Exercice 4 :
a) Créer une classe volante qui a comme donnée membre nombre_ailes et qui a un constructeur, un
destructeur et une fonction affiche.
b) Créer une classe animal qui a comme données membres nombre_pattes et type_pelage et qui a un
constructeur, un destructeur et une fonction affiche.
c) Créer une classe oiseau qui dérive publiquement des classes volante et animal. Elle a comme
donnée membre type_oiseau et qui a un constructeur, un destructeur et une fonction affiche qui
affiche la donnée membre et qui fait appel aux fonctions affiche des classes de base.
d) Créer un programme qui crée un objet de type oiseau et teste ses fonctions.

Exercice 5 :
Une entreprise souhaite gérer les salaires de ses employés. Pour cela, elle crée une classe Employé
ayant les caractéristiques suivantes : les données nom, prénom, âge, ancienneté et salaire_base, une
méthode calculer_salaire (qui calcule le salaire de l’employé : salaire=salaire_base + 10% par année
d’ancienneté), et un constructeur.
On définit également les classes dérivée Commercial et Technicien. Commercial a comme donnée
chiffre_affaire et comme méthode calculer_salaire (salaire du commercial=salaire de
l’employé+5% du chiffre d’affaire). Technicien a comme donnée nb_unité_produite et comme
méthode calculer_salaire (salaire du technicien=salaire de l’employé+(20*nb_unité_produite)).
On souhaite créer 3 commerciaux et 5 techniciens, stocker les 8 employés dans un seul tableau, et
utiliser ce tableau pour calculer le total des salaires des employés.

Vous aimerez peut-être aussi