Re: Как получить указатель на функцию-метод класса
> но выдается ошибкаа строке f(f1):
> error C2664: 'f' : cannot convert parameter 1 from 'void (void)' to 'void (__cdecl*)(void)'
> None of the functions with this name in scope match the target type
>
> как не пытался изменять код - ничего не помогает.
> странно, неужели указатели на функции не работают в классах ?
>
Почему же не работают. Замечательно работают.
Но из-за особенностей функций-членов классов
используется специальный синтаксис:
class A {
typedef void (A::*pfunction)();
public:
void f1() {
}
void f(pfunction p) {
(this->*p)();
}
void fff() {
f(f1);
}
};
Хотя возможно, что будут удобнее виртуальные функции,
если задача не заключается в том, чтобы сделать
таблицу с функциями, по аналогии с MFC.
Номер выпуска : 5317
Возраст листа : 980 (дней)
Количество подписчиков : 617
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/554693
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru