Template et appel de méthode
Bonjour,
Voici mon code source:
Code:
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;
} |
Voici le résultat:
Code:
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 |
Comment faire pour appeler la methode 'salut()' avec le bon template pour obtenir ce résultat:
Code:
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 |
Merci d'avace...