Solutionnaire
- Q1: Deux modules A et B dont les classes (A et B) et les différentes
méthodes associées sont définies dans les fichiers: A.h/A.cpp et B.h/B.cpp.
Soit les méthodes privées: foo dans la classe A et bar dans la classe B.
La méthode foo de la classe A fait appel à la méthode bar de la classe B.
La méthode main est définie dans un fichier à part main.cpp
Comment doit-on organiser les classes A&B pour que la compilation se fasse correctement?
- -1- ajouter un appel (#include "b.h") dans "a.h".
- -2- déclarer la class A amie de la classe B.
- Q2 Modifier le programme suivant
(1169demo03exo2.cpp) pour qu'il puisse être compilé et exécuté correctement.
[Solutionnaire](1169demo03exo2sol.cpp).
- Q3: En vous aidant d'un programme c++ et sachant que A, B & C sont des classes ;
montrez (et expliquez) ce qui suit:
[Solutionnaire](1169demo03exo3sol.cpp).
- Symétrie
Si j'ai le mot de passe du compte de la personne x, je peux donc entrer dans son compte. Ça ne veut pas dire que cette personne (x) peut entrer dans mon compte, puisqu'elle n'a pas mon mot de passe.
Montrez que l'amitié n'est pas symétrique, i.e.: Si la classe A est amie de la classe B n'implique pas que la classe B est amie de la classe A.
- Transitivité
Si j'ai le mot de passe du compte de la personne (x), je peux donc entrer dans le compte de (x). Et si cette personne (x) a le mot de passe du compte de la personne (y), elle peut donc entrer dans le compte de (y). Cela ne veut pas dire que je peux entrer dans le compte de (y), puisque je n'ai pas son mot de passe.
Montrez que l'amitié n'est pas transitive, i.e.: Si la classe A est amie de la classe B et la classe B est amie de la classe C; n'implique pas que la classe A est amie de la classe C.
- Q4 Ajouter ce qui suit au programme suivant
(1169demo03exo4.cpp).
[Solutionnaire](1169demo03exo4sol.cpp).
- Un constructeur sans argument.
- L'opérateur d'affectation =.
- Deux fonctions amies:
- compte AjoutSomme(const compte& c, int v): Permet d'ajouter une somme v au compte c.
- compte compte test(int x) permet d'afficher la valeur passée en argument et de retourner un compte crée localement.
- Quatre fonctions quelconques:
- void p_val(compte c) une fonction permettant d'illustrer le passage par valeur, en affichant en sortie: p_val.
- void p_val(compte& c) une fonction permettant d'illustrer le passage par référence, en affichant en sortie: p_ref.
- friend compte AddCompte(const compte, int) Au compte retourné elle ajoute le solde du compte passé en argument
ainsi que la valeur du second argument.
- friend compte Easy(int) Elle déclarer localement un compte et affiche la valeur de l'argument.
- Complétez la fonction main avec les instructions nécessaires afin d'utiliser les fonctionnalités décrites précédemment.
|
|