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 #9  
 
Dernière mise à jour : mer 12 nov 2003 22:02:30 EST
 

Buts:

  • Classes génériques et héritage -1-

Exercice 1 (solution: demo09exo1sol.cpp)

Soit la classe générique (Template) suivante:

template<class Type1, class Type2>
class ClasseBase {

protected:
  Type1 Champ1;
  Type2 Champ2;

public:
  ClasseBase() {}
  ClasseBase(Type1 arg1, Type2 arg2):Champ1(arg1), Champ2(arg2) {}
  void Print() {
    cout << Champ1 << ' ' << Champ2 << endl;
  }
};

Citez au moins un type qu'il ne pourra pas être traité correctement par la classe ClasseBase (justifiez votre réponse).

Exercice 2 (solution: demo09exo2sol.h --- demo09exo2sol.cpp)

Reprendre l'exercice précédent, et répondez aux questions suivantes:

  • -1- Écrire la définition d'une classe dérivée ClasseDerivee, qui dérive publiquement de la classe de base ClasseBase et qui contient les membres suivants:
    • - un membre donnée Champ3 du type Type2
    • - un seul constructeur
    • - une fonction Print() pour afficher les membres données de la classe de base et de la classe dérivée.
  • -2- Complétez la fonction main suivante:

    int main() {
      int x = 40;
      float y = 55.55;
      char a = 'w', b='z';

      // À titre d'exemple
      // création (instantiation) de l'objet BaseExpObj du type
      // ClasseBase et cela sans arguments.

      ClasseBase BaseExpObj();

      // À ÉCRIRE
      // création (instantiation) de l'objet ObjBase
      // du type ClasseBase avec les valeurs x et y
      // comme arguments.

      // À ÉCRIRE
      // création (instantiation) de l'objet ObjDerivee
      // du type ClasseDerivee, avec les valeurs a,b
      // comme arguments.

      // À ÉCRIRE
      // appel de la fonction Print de la classe de base
      // sur l'objet ObjBase.

      // À ÉCRIRE
      // appel de la fonction Print de la classe dérivée
      // sur l'objet ObjDerivee

      return 0;
    }




pift1166@iro.umontreal.ca
[top]