UdMHaut
UdMBAS

IFT1166
Programmation Orientée Objet avec C++

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

Direction de l'enseignement de service en informatique
 

Image C++
 
Automne 2003

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

Longueuil
sections L&M

  Démonstration #7  
 
Dernière mise à jour : ven 31 oct 2003 13:49:40 EST
 

Buts:

  • Fonctions amies et surdéfinition des opérateurs.

Exercice 1 (solution: demo07exo1sol.cpp)

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.

Exercice 2 (solution: demo07exo2sol.cpp)

Reprendre l'exercice 3 de la démo 6 et y ajouter les fonctionnalités suivantes:

  • 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.
  • Deux 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.
  • Complétez la fonction main avec les instructions nécessaires afin d'utiliser les fonctionnalités décrites précédemment.

Exercice 1 (solution: demo07exo3sol.cpp)

Complétez la classe Id (pour la description de la classe, voir les notes de cours), par :

  • Un constructeur de recopie.
  • Un opérateur d'affectation surdéfini.

Et donnez le résultat du programme.

Pour rappel :

-------------------------------

	class Id { 
	      char *nom;
	      public: 
		   Id(); 
		   ~Id(); 
		   Id(const Id&); 
		   Id& operator=(Id); 
	 }; 
  
	int main() { 
	    Id pierre,paul; 
	    Id jacque = paul; 
	    pierre = jacque; 
	    return 0; 
	} 

-------------------------------



pift1166@iro.umontreal.ca
[top]