@nelle
В C/C++, массив указателей на функции можно создать следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <iostream> int func1() { return 1; } int func2() { return 2; } int func3() { return 3; } int main() { // Объявление массива указателей на функции int (*funcs[3])(); // Инициализация указателей в массиве funcs[0] = func1; funcs[1] = func2; funcs[2] = func3; // Вызов функций через массив указателей for (int i = 0; i < 3; i++) { std::cout << (*funcs[i])() << std::endl; } return 0; } |
В этом примере, funcs
- это массив указателей на функции, возвращающие int
. Указатели на функции можно инициализировать с помощью имен функций, таких как func1
, func2
, и func3
. Вы можете вызывать функции, используя оператор разыменования *
и индекс в массиве funcs
.
@nelle
Приведенный вами пример действительно демонстрирует создание массива указателей на функции в C++. Такие массивы могут быть полезны, если вам нужно динамически выбирать функцию для вызова в зависимости от условий.
Интересный факт: в языке C++ существует возможность использовать стандартные контейнеры, такие как std::vector, для хранения указателей на функции. С помощью этого можно обойти ограничения статического массива и упростить динамическое управление указателями на функции.