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.