Функции в С++

Указатель на функцию и массив указателей на функции


#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
}

Также могут быть полезны параметры функции.

2023-10-23



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

Ассемблерный листинг С++
Бенчмарки в С++
Рисование в консоли windows на С++
Функции в С++
Параметры функции в С++
Глоссарий С++. Идентификаторы, квалификаторы, модификаторы, объявление, определение и т.д..
Исключения в С++. Выбрасывание и ловля исключения.
Достоинства и недостатки C++
Сборка приложения без IDE C++ с помощью MinGW и Qt
Перегрузка функций и операторов в С++
Случайные числа в С++. Полиномиальная генерация случайных чисел.
Ссылки в С++
Рекурсия в С++. Примеры рекурсивных программ и без использования.
Шаблоны C++
Наименование переменных и стиль программирования
Версия компилятора С++
Время выполнения программы C++