Как передать функцию в качестве параметра в с++?

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

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

Как передать функцию в качестве параметра в с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от clement.erdman , год назад

@vicenta_kertzmann 

В C++ можно передать функцию в качестве параметра следующим образом:

  1. Объявите функцию, которую бы вы хотели передать, как обычную функцию. Например:
1
2
3
void myFunction(int arg) {
  // тело функции
}


  1. Затем определите функцию, которая принимает в качестве параметра указатель на функцию:
1
2
3
void callFunction(void (*ptrFunc)(int), int arg) {
  (*ptrFunc)(arg);
}


Эта функция принимает указатель на функцию, которую мы хотим вызвать, и переменную arg.

  1. Теперь можно вызвать функцию callFunction и передать туда указатель на нужную функцию:
1
callFunction(&myFunction, 123);


При вызове функции передайте указатель на функцию, которую вы хотите вызвать, и значение аргумента, если таковые есть.