UdMHaut
UdMBAS

IFT1169
Programmation Avancée en C++

Département d'informatique et de recherche opérationnelle

Direction de l'enseignement de service en informatique
 

Image C++
 
Automne 2024

Accueil

Professeurs et
Démonstrateurs

Horaires et locaux

Notes de cours

Cours
après Cours

Démonstrations
et devoirs

Examens

Liens utiles

Au sujet du
livre de cours

Consultez vos notes

Foire aux questions
(FAQ)

Sessions antérieures

  Démonstration #3  
 
Dernière mise à jour : mercredi 11 septembre 2024 10:52:20
 


Buts:

  • [Friends].

  • 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?

  • Q2 Modifier le programme suivant (1169demo03exo2.cpp) pour qu'il puisse être compilé et exécuté correctement.

  • Q3: En vous aidant d'un programme c++ et sachant que A, B & C sont des classes ; montrez (et expliquez) ce qui suit:

    • 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).
    • 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.

[top]


dift1169@iro.umontreal.ca