EVALUATION EN C++ TEST 05/ XX
EXAMEN C++ , EXAMEN CORRIGE C++
Question de Cours 10 pts
- Définir : encapsulation, classe mère, polymorphisme, objet composite.
- Quel est l’intérêt du constructeur par défaut ?
- Qu'est ce qu'un constructeur ?
- Quel est le contenue de l'interface de classe (fichier d’entête).
- Donner la signification de mot clé "const" lorsqu'il précède un argument d'une méthode.
- Quel est l’intérêt du codage en ligne (fonction inline)
- Ennoncer comment se déroule la résolution des champs.
- Ennoncer comment se déroule la résolution des méthodes.
- Donner la signification du mot polymorphisme en illustrant sur un exemple simple.
- Quelle est la différence fondamentale entre une méthode d'instance, une méthode de classe et une fonction amie ?
Problème 10 pts
Un policier est décrit par son matricule, son nom et son salaire mensuel. Chaque policier possède un matricule généré automatiquement qu'on ne peut pas changer, et deux policiers possèdent des matricules distincts. Pour cela, on introduit une variable de classe appelée `nbreCreation` initialisée à 10, qui contiendra à chaque instant le nombre de policiers déjà créés. Dans chaque constructeur, la valeur de `nbreCreation` est affectée au matricule de l'objet policier en cours de création puis incrémentée de 1.
A) Expliquer pourquoi il ne faut pas prévoir d'accesseur en modification sur le matricule.
B) Définir le contenu du fichier d'en-tête `police.h` en affectant la visibilité `public` à toutes les méthodes et la visibilité `private` à toutes les variables d'instance, sachant que les spécifications sont :
1. Un constructeur à un argument qui prend en entrée le nom du policier (un tableau de caractères) et un autre à deux arguments (qui prend en entrée le nom et le salaire).
2. Le constructeur de recopie.
3. Les accesseurs en consultation et en modification sur le nom et le salaire. Un accesseur en consultation sur le matricule.
4. Une méthode d'instance `void affichage()` qui invite l'objet policier récepteur du message à afficher sa description. Par exemple `Policier [Matricule 0, Nom Kamga, Salaire 450000]`.
5. La méthode d'instance `public int operator==(Policier &p)` invite l'objet récepteur du message à retourner `TRUE` s'il est égal à l'objet porté par le message et `FALSE` sinon. Deux policiers sont égaux s'ils ont le même matricule.
6. Une méthode de classe `static Policier lireClavier()` qui lit le nom et le salaire d'un policier au clavier, crée un objet policier et retourne cet objet.
7. Une méthode de classe `static double moyenneSalaire(Policier tab[], int taille)` qui prend en entrée un tableau de policiers et sa taille, puis retourne la moyenne des salaires des policiers dudit tableau.
C) Définir le contenu du fichier d'implémentation `police.cpp`.
D) Définir le contenu du fichier test `main.cpp`.
Contact WhatsApp : +237 652027193 | Réaliser Par Joël_Yk