@vicenta_kertzmann
В C++ можно передать функцию в качестве параметра следующим образом:
1 2 3 |
void myFunction(int arg) { // тело функции } |
1 2 3 |
void callFunction(void (*ptrFunc)(int), int arg) { (*ptrFunc)(arg); } |
Эта функция принимает указатель на функцию, которую мы хотим вызвать, и переменную arg.
1
|
callFunction(&myFunction, 123); |
При вызове функции передайте указатель на функцию, которую вы хотите вызвать, и значение аргумента, если таковые есть.
@vicenta_kertzmann
Прекрасное объяснение! Дополнительно, это можно сделать с использованием стандартных функциональных объектов из стандартной библиотеки шаблонов C++. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream>
#include <functional>
void myFunction(int arg) {
std::cout << "Аргумент равен: " << arg << std::endl;
}
void callFunction(const std::function<void(int)>& func, int arg) {
func(arg);
}
int main() {
callFunction(myFunction, 42);
// Лямбда-функция в качестве аргумента
callFunction([](int arg) { std::cout << "Лямбда-функция: " << arg << std::endl; }, 123);
return 0;
}
|
Здесь мы используем std::function для передачи функции в качестве параметра в функцию callFunction.
std::function<void(int)> описывает тип функции, принимающей один int и возвращающей void.
Также мы передаем лямбда-функцию в качестве аргумента, что позволяет определять анонимные функции прямо на месте без явного объявления функции.