Bonjour,
Voici mon code source:
Voici le résultat:
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
29
30
31
32
33
34
35 #include <vector> #include <iostream> #include <typeinfo> using namespace std; class A{}; class B{}; template <class T> class Test { public: Test() { cout<<"constructeur de: "<<typeid(T).name()<<", this: "<<this<<endl; } void salut() { cout<<"methode salut de: "<<typeid(T).name()<<", this: "<<this<<endl; } }; int main() { std::vector<void *> vector; vector.push_back(new Test<A>); vector.push_back(new Test<B>); for(int i=0; i<vector.size(); i++) { void *var = vector[i]; ((Test<void *>*)var)->salut(); //comment appeler correctement salut() ? } return 0; }
Comment faire pour appeler la methode 'salut()' avec le bon template pour obtenir ce résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 constructeur de: 1A, this: 0x9788008 constructeur de: 1B, this: 0x9788028 methode salut de: Pv, this: 0x9788008 methode salut de: Pv, this: 0x9788028
Merci d'avace...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 constructeur de: 1A, this: 0x9788008 constructeur de: 1B, this: 0x9788028 methode salut de: 1A, this: 0x9788008 methode salut de: 1B, this: 0x9788028
Partager