Vous êtes sur la page 1sur 2

UNIVERSITÉ IBN TOFAIL! ANNÉE UNIVERSITAIRE!

FACULTÉ DES SCIENCES- KÉNITRA! 2014-2015


DÉPARTEMENT D’INFORMATIQUE
!
!
SÉRIE III. HÉRITAGE ET POLYMORPHISME
!
Exercice 1
Soit la classe suivante:
class Individu {
public:
Individu(string nom=" ", string prenom=" ", int age=0);
Individu(const Individu &); //constructeur de copie
string getNom(void); //retourne le nom
string getPrenom(void); //retourne le prénom
void afficheInfo(void); //affiche toutes les informations d’un individu
int getAge(void); //retourne l'age
protected:
int age;
string nom;
string prenom;
};
!
Définissez les méthodes de la classe Individu et testez la en créant plusieurs instances.
Proposez ensuite une classe dérivée avec un mode de dérivation "public" de la classe
Individu. Appelez cette nouvelle classe Employe et complétez la de manière à:
✦ déclarer une donnée qui correspond au salaire (type int)
✦ surdéfinir la fonction afficheInfo() pour cette classe.
✦ définir le constructeur à 4 paramètres
✦ définir le constructeur de copie
Testez plusieurs instances de cette nouvelle classe.
Exercice 2
Écrivez un programme qui montre l’héritage multiple d’une classe pointDeCouleur
avec 2 classes Point et Couleur.
La classe Point précisera sous forme d’un couple (x, y) les coordonnées d’un point, par
exemple : (5, –2).
La classe Couleur précisera sous la forme d’une chaîne de caractère, une couleur, par
exemple : Rouge.
Pour chacune des classes il faudra spécifier un constructeur, un destructeur et une
fonction affichage qui trace l’utilisation de chacune des classes.
Exercice 3
Une entreprise souhaite gérer les salaires de ses employés. Pour cela, elle crée une
classe Employé ayant les caractéristiques suivantes :
✦ Une donnée membre string: nom
✦ Une donnée membre string: prénom
UNIVERSITÉ IBN TOFAIL! ANNÉE UNIVERSITAIRE!
FACULTÉ DES SCIENCES- KÉNITRA! 2014-2015
DÉPARTEMENT D’INFORMATIQUE
!
✦ Une donnée membre de type int: age
✦ Une donnée membre de type int: ancienneté (le nombre d’années de la personne
dans l’entreprise)
✦ Une méthode double calculer_base_salaire() qui calcule la base du salaire de la
personne.
✦ Une méthode void afficher() qui affiche la personne avec sa profession
✦ Une méthode double calculer_salaire() qui calcule le salaire de la personne (base
de salaire plus 10% par année d’ancienneté)
✦ Un constructeur
✦ Un destructeur
On souhaite pouvoir définir les classes dérivées d’Employé suivantes :
1. Une classe Commercial ayant une donnée membre double chiffre_affaire et deux
données statiques constantes double BASE et double PART. La base de salaire est
donnée par la formule suivante : 

BASE+chiffre_affaire*PART
2. Une classe Technicien ayant une donnée membre int nb_unité_produite et trois
données statiques constantes double BASE, double PART et double GAIN_UNITE.
La base de salaire est donnée par la formule suivante : 

BASE+nb_unité_produite*PART*GAIN_UNITE

✦ Implémenter les différentes classes et tester-les.


✦ Ecrire un programme principal contenant un tableau de pointeurs sur des
Employe. Déclarer dynamiquement 3 ou 4 instances des classes implémentées et
stocker leurs adresses dans le tableau et tester la méthode afficher de chacun des
éléments du tableau.