![]() ![]() |
IFT1169 Programmation Avancée en C++ |
![]() |
Automne 2024
|
Démonstration #9 - Solutionnaire - | |||
Dernière mise à jour :
mercredi 11 septembre 2024 10:52:30 |
|||
Buts:
[Solutionnaire](1169demo09exo1sol.cpp).
Le compilateur va associer à chaque fonction appelée entre les lignes 0 et 5, une fonction classique
ou une fonction instanciée à partir d'une fonction générique. Pour chaque ligne dites le nom de
la fonction qui sera prise en considération et l'affichage en sortie obtenu suite à cet appel.
[Solutionnaire](1169demo09exo2sol.h).
Voici un fragment de code montrant comment est utilisée la classe IntList.
Question -1-
Modifier la classe IntList pour lui permettre de supporter un type d'objets T générique.
Soit GenIntList<T> le nom de cette nouvelle classe.
Question -2-
Le constructeur de la classe IntList est comme suit:
IntList::IntList(int n, int val) { Écrire le constructeur de la classe générique GenIntList Question -3-
Écrire l'instruction permettant d'instancier un objet maListe de classe GenIntList<T> ayant 8 éléments
chacun initialisé avec la valeur 3.
[Solutionnaire](1169demo09exo3sol.cpp).
Question -4-
Nous allons ajouter à la classe GenIntList l'opérateur de sortie operator<<. Ayant déjà pris
connaissance de toutes les informations précédement fournies, est-ce que vous êtes dans l'obligation de
déclarer cet opérateur ami de la classe GenIntList? Expliquer votre réponse.
[Solutionnaire](1169demo09exo4sol.h).
[Solutionnaire](1169demo09exo4sol.cpp).
template<class Type1, class Type2>
protected:
public:
Citez au moins un type qu'il ne pourra pas être traité correctement par la classe ClasseBase (justifiez votre réponse).
int main() {
// À titre d'exemple
ClasseBase<int,int> BaseExpObj();
// À ÉCRIRE
// À ÉCRIRE
// À ÉCRIRE
// À ÉCRIRE
return 0;
|
dift1169@iro.umontreal.ca |