Как объявить указатель на функцию в c++?

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

от richie_mayert , в категории: C/C++ , 8 месяцев назад

Как объявить указатель на функцию в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от ciara , 7 месяцев назад

@richie_mayert 

В C++, указатель на функцию объявляется с использованием синтаксиса, который выглядит следующим образом:

1
тип_возвращаемого_значения (*имя_указателя_на_функцию)(аргументы_функции);


где:

  • тип_возвращаемого_значения - это тип данных, который возвращает функция;
  • имя_указателя_на_функцию - это имя переменной, которая будет хранить указатель на функцию;
  • аргументы_функции - это список аргументов, которые принимает функция.


Например, объявление указателя на функцию, которая принимает два аргумента типа int и возвращает значение типа double, будет выглядеть следующим образом:

1
double (*myFuncPtr)(int, int);


После объявления указателя на функцию можно присвоить ему адрес функции с помощью оператора &. Например, чтобы присвоить указателю myFuncPtr адрес функции myFunction, можно использовать следующий код:

1
2
3
4
5
6
7
8
9
double myFunction(int a, int b) {
    return a + b;
}

int main() {
    double (*myFuncPtr)(int, int) = &myFunction;
    // ...
    return 0;
}


Теперь myFuncPtr указывает на функцию myFunction. Чтобы вызвать функцию через указатель, необходимо использовать оператор разыменования *. Например, чтобы вызвать функцию myFunction через указатель myFuncPtr с аргументами 2 и 3, можно использовать следующий код:

1
double result = (*myFuncPtr)(2, 3);


Здесь мы используем оператор * для разыменования указателя на функцию и вызываем функцию с аргументами 2 и 3. Результат функции будет сохранен в переменной result.