В C ++ я пытаюсь определить тип, подходящий для указателя на одну из нескольких функций-членов моего класса cBar
(все функции имеют одинаковый интерфейс, например, принимают int
и возвращают void
).
Сейчас я делаю глобальный тип tHandler
, подходящий для указателя на одну из нескольких глобальных функций, принимающий дополнительный параметр me
, содержащий указатель на мой класс cBar
, следующим образом:
typedef void(*tHandler)(class cBar *const me, int val);
void Handler0(class cBar *const me, int val);
void Handler1(class cBar *const me, int val);
class cBar {
tHandler fCurrentHandler;
/*..*/
public:
inline void cBar::CurrentHandler(int val) {
(*fCurrentHandler)(this,val);
}
inline cBar() {
fCurrentHandler = Handler0;
CurrentHandler(0);
}
inline ~cBar() {
CurrentHandler(-1);
}
};
Это безобразно;в частности Handler0
и Handler1
должны быть закрытыми методами cBar
, а tHandler
должен быть закрытым типом.
Любая подсказка?ТИА.