J'essaie d'appeler une fonction membre, éventuellement avec le pointeur d'objet, sans savoir de quelle classe provient la fonction membre. Est-ce possible?Appel du pointeur de fonction membre C++ sans connaître la classe
Fondamentalement, je veux quelque chose comme ce qui suit pour fonctionner.
class Foo{
public:
Foo(void* object): obj(object) {}
void callFunc(void (*func)()){
obj->*func();
}
private:
void* obj;
};
class Bar{
public:
Bar(): foo(this) {}
void callSomeFunc(){
callFunc(someFunc);
}
void someFunc(){
cout << "hi\n";
}
private:
Foo foo;
};
int main(){
Bar bar;
bar.callSomeFunc();
return 0;
}
Vous pouvez le faire en enveloppant la fonction membre dans un adaptateur statique: http://ideone.com/I4dH4b. Mais je ne suis pas sûr de savoir comment c'est utile. – melpomene
Que voulez-vous réellement faire? Quelle est la tâche spécifique que vous voulez résoudre? Votre programme ne correspond pas au paradigme C++ – LmTinyToon
Vous pouvez être intéressé par 'std :: function'. –