Указатель на функцию в C++
Один и тот же указатель на функцию может указывать на разные реализации, пока совпадают тип возвращаемого значения и список параметров.
Сначала сохраним адрес одной функции, затем запишем адрес другой в ту же переменную и вызовем через указатель - выполнится уже второе тело. Соберем пример с двумя функциями и одним указателем:
#include <iostream>
void showA(int value) {
std::cout << "A:" << value << "\n";
}
void showB(int value) {
std::cout << "B:" << value << "\n";
}
int main() {
void (*fp)(int) = &showA;
fp = &showB;
fp(7);
return 0;
}
Объявите функции void tagOne(int) и
void tagTwo(int), печатающие разные
метки и число. Указатель void (*fp)(int)
сначала свяжите с tagOne, затем
переназначьте на tagTwo и вызовите
с аргументом 4.