В С++ можно использовать указатели функций-членов, чтобы указывать на производные (или даже базовые) члены класса?
EDIT:
Возможно, пример поможет. Предположим, что мы имеем иерархию из трех классов X
, Y
, Z
в порядке наследования.
Y
поэтому имеет базовый класс X
и производный класс Z
.
Теперь мы можем определить указатель на функцию-член p
для класса Y
. Это записывается как:
void (Y::*p)();
(Для простоты я предполагаю, что нас интересуют только функции с сигнатурой void f()
)
Этот указатель p
теперь можно использовать для указания на функции-члены класса Y
.
Этот вопрос (на самом деле, два вопроса):
- Можно использовать
p
для указания функции в производном классеZ
? - Можно использовать
p
для указания функции в базовом классеX
?