Тип функции
Тип функции в C++ - это составной тип, который определяется
типом возвращаемого значения и типами параметров функции.
Тип функции используется для объявления указателей на функции,
передачи функций в качестве аргументов другим функциям и
возврата функций из функций. Тип функции записывается в виде
return_type(parameter_types). В первом параметре
указывается тип возвращаемого значения, а в скобках -
типы принимаемых параметров.
Синтаксис
return_type(parameter_types)
return_type(*)(parameter_types)
Пример
Давайте объявим указатель на функцию, которая принимает два целых числа и возвращает целое число:
#include <iostream>
using namespace std;
int add(int a, int b)
{
return a + b;
}
int main()
{
int (*func)(int, int) = add;
cout << func(2, 3) << endl;
return 0;
}
Результат выполнения кода:
5
Пример
Давайте передадим функцию в качестве параметра другой функции, используя тип функции:
#include <iostream>
using namespace std;
int add(int a, int b)
{
return a + b;
}
int multiply(int a, int b)
{
return a * b;
}
void apply(int (*op)(int, int), int x, int y)
{
cout << op(x, y) << endl;
}
int main()
{
apply(add, 2, 3);
apply(multiply, 2, 3);
return 0;
}
Результат выполнения кода:
5
6
Пример
Давайте используем псевдоним типа для типа функции
с помощью using:
#include <iostream>
using namespace std;
using Operation = int(*)(int, int);
int add(int a, int b)
{
return a + b;
}
int main()
{
Operation op = add;
cout << op(4, 5) << endl;
return 0;
}
Результат выполнения кода:
9