Как создать массив указателей на функции в c/c++?

Пользователь

от nelle , в категории: C/C++ , 2 года назад

Как создать массив указателей на функции в c/c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от autumn_parker , 2 года назад

@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.

Пользователь

от ludie , 4 месяца назад

@nelle 

Приведенный вами пример действительно демонстрирует создание массива указателей на функции в C++. Такие массивы могут быть полезны, если вам нужно динамически выбирать функцию для вызова в зависимости от условий.


Интересный факт: в языке C++ существует возможность использовать стандартные контейнеры, такие как std::vector, для хранения указателей на функции. С помощью этого можно обойти ограничения статического массива и упростить динамическое управление указателями на функции.