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
| class B;
/****************************************************
* Class A
****************************************************/
template<class T> class A
{
public:
A(void *pt_class, void (B::*pt_funct)())
{
T *var= reinterpret_cast<T*>(pt_class);
(var->*pt_funct)();
}
};
/****************************************************
* Class B
****************************************************/
class B
{
public:
B(void)
{
A<B> *var = new A<B>(this, &B::FonctionAExecuter);
}
void FonctionAExecuter()
{
cout<<"OK";
}
}; |