Извините, что задаю такой вопрос, так как я уверен, что на него уже был дан ответ, но я изо всех сил пытаюсь найти ответ, и это не из-за желания искать... во всяком случае..
class foo
{
void read(void (*func)(obj&))
{
// many things happen to obj...
(*func)(obj); // Calls the function pointer to the handler.
}
};
class bar : public foo
{
void handler(obj&)
{
//
}
};
void main()
{
foo f;
typedef void (foo::*funcptr)(obj&);
funcptr ptr = &foo::handler;
f.read(ptr); ????
}
Итак, в основном, все, что я пытаюсь сделать, это передать нестатический метод-член, называемый обработчиком, в качестве указателя функции на метод чтения, чтобы при выполнении обратного вызова вызывался обработчик.
Я пробовал всевозможные способы заставить это работать и не хочу создавать статические методы (по причинам, в которые я не буду вдаваться). Я думаю, что я довольно близко, но как бы упал прямо в конце! Любая помощь будет оценена по достоинству.