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 #5  
 
Dernière mise à jour : mercredi 11 septembre 2024 10:52:20
 


Buts:

  • [Surcharge des opérateurs].

  • Q1:Soit le programme suivant 1169demo05exo1.cpp

    • Donner les lignes de la fonction main où sont appelées les fonctions membres de la classe X, en indiquant à chaque fois le nom de l'objet crée (ou receveur). (Si plusieurs objets sont créés pour une même ligne, indiquez-les tous).

      ligne
      1
      ligne
      4
      ligne
      6
      ligne
      8
      ligne
      10
      ligne
      12
      X::X()
      X::X(int)
      X::X(const X&)
      X::operator=(const X&)

    • Donner les résultats obtenus en sortie après l'appel des lignes suivantes, de la fonction main:

      ligne
      2
      ligne
      3
      ligne
      5
      ligne
      7
      ligne
      9
      ligne
      11
      ligne
      13
      Sortie

    • Soit H le nom de l'objet crée à la ligne 4. Sur cette même ligne (4), H est accessible par le pointeur pa. Après avoir exécuté la ligne 10, et avant d'avoir exécuté la ligne 11:

      • H existe toujours mais n'est plus accessible? (vrai/faux)
      • H existe et H.a a pris la valeur 2010? (vrai/faux)

  • Q2 Le programme suivant 1169demo05exo2.cpp contient 5 erreurs de syntaxe. Indiquez les et indiquez la correction qu'il faudra apporter. Des erreurs sur une même ligne compte pour une seule erreur.

  • Q3 Complétez la classe Chaine suivante 1169demo05exo3.cpp.

  • Q4 Complétez la classe String suivante 1169demo05exo4.cpp.

  • Q5 Soit le fichier 1169demo05exo5.cpp.

    • À quoi servent les fonctions getX, getY, setX et setY?

    • A quoi servent les fonction membres Point(Point & p) et ~Point()? Sont-elles nécessaires dans le cas de la classe Point? Pourquoi?

    • Que signifie le mot clé friend devant le prototype de la fonction compareHauteur? À quoi cela sert-il?

    • On considère la classe Polygone suivante 1169demo05exo5p.cpp. (un polygone est caractérisé par son nombre de sommets et par ses sommets, stockés dans un tableau).

      On utilise la classe Point définie précédemment et l'on suppose que les deux classes sont définies dans un même fichier.

      Dites ce qui s'affiche à la suite des deux instructions suivantes :

      • Polygone triangle(3);
      • triangle.afficher();

    • Ecrivez la surcharge de l'opérateur d'indexation [ ] qui retourne le ième Point du polygone. Cet opérateur lèvera une exception du type entier qui renverra l'indice demandé quand celui-ci n'est pas valide (i.e. est négatif ou supérieur au nombre de sommets).

    • Définir la méthode input membre de la classe Polygone qui permet de mettre à jour les abscisses (X) et les ordonnées (Y) des différents sommets de ce polygone.

[top]


dift1169@iro.umontreal.ca