Извините, что задал такой вопрос, поскольку я уверен, что на него ответили ранее, но я изо всех сил пытаюсь найти ответ, и это не из-за отсутствия взгляда. .. в любом случае ..Передайте нестатический указатель метода в качестве аргумента другому методу
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); ????
}
так в основном, все, что я пытаюсь сделать, это передать метод нестатического члена с именем обработчик как функция указатель на метод чтения, так что, когда обратный вызов выполняются, вызывается обработчик.
Я пробовал всевозможные способы сделать эту работу и не хочу статических методов (по причинам, в которые я не буду вдаваться). Я думаю, что я довольно близко, но в конце концов упал! Любая помощь будет оценена по достоинству.
Ознакомьтесь с FAQ lite, у них есть отличный раздел, посвященный этому: http://www.parashift.com/c++-faq/pointers-to-members.html – Constantin