#include <iostream> // std::cout
int ADD(int x, int y){
return x + y;
}
int SUB(int x, int y){
return x - y;
}
int main() {
int (*ref)(int, int) = ADD; // ref - указатель на функцию
int (*ar_ref[])(int, int) = {ADD, SUB}; // ar_ref - массив указателей на функции
std::cout << ref(13, 7) << '\n'; // 20 Вызов функции через указатель
std::cout << ar_ref[0](13, 7) << '\n'; // 20 Вызов первой функции из массива
std::cout << ar_ref[1](13, 7) << '\n'; // 6 Вызов второй функции из массива
}
#include <iostream> // std::cout
#include <map> // std::map
int ADD(int x, int y){ // Функция сложения
return x + y;
}
int SUB(int x, int y){ // Функция вычитания
return x - y;
}
int main() {
std::map<std::string, int(*)(int, int)>ar_func; // Коллекция ключа (имени) и значениф (указателя на функцию)
ar_func["ADD"] = ADD; // Добавляем ключ = значение
ar_func["SUB"] = SUB; // Добавляем ключ = значение
std::cout << ar_func["ADD"](8, 5) << '\n'; // 13
std::cout << ar_func["SUB"](8, 5) << '\n'; // 3
}
Также могут быть полезны параметры функции.