Allez, encore un petit
Nous avons une classe MyOuput dont le rôle consiste à afficher des valeurs sur la console. Pour diverses raisons spécifiques au cahier des charges, une fonction print() existe pour chaque type que nous souhaitons accepter. Pour d'autres raisons variées, encore spécifiques au cahier des charges, nous décidons de créer une couche d'abstraction supplémentaire, un wrapper, qui lui va gérer le problème en utilisant une fonction template:
Questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #include <iostream> #include <string> using namespace std; struct MyOutput { void print(const string & value) const { cout << "string: " << value << endl; } void print(bool value) const { cout << "bool: " << value << endl; } }; struct Wrapper { template <typename T> void print(const T & value) const { my_output_.print(value); } private: MyOutput my_output_; }; int main() { Wrapper my_wrapper; my_wrapper.print("test"); my_wrapper.print(false); getchar(); return 0; }
Quel est l'output de ce programme?
Pourquoi?
Partager