logo

Покажчик на функцію в C++

Передумови:

Покажчики є символічними представленнями адрес. Вони дозволяють програмам імітувати виклик за посиланням, а також створювати динамічні структури даних і керувати ними. Ітерація елементів у масивах або інших структурах даних є одним із основних видів використання покажчиків.



Адреса змінної, з якою ви працюєте, призначається змінній-вказівнику, яка вказує на той самий тип даних (наприклад, int або string).

Синтаксис :

datatype *var_name;>

Адреса функції: Ми всі знаємо, що код кожної функції зберігається в пам’яті, тому кожна функція має адресу, як і всі інші змінні в програмі. За назвою функції можна знайти адресу функції. Ми можемо отримати адресу функції, просто написавши назву функції без дужок у функції.



Щоб дізнатися більше про це, зверніться до статті – адреса функції.

Покажчик на функцію в C++

  • Покажчик на функцію використовується для вказування на функції, так само покажчики використовуються для вказування на змінні.
  • Він використовується для збереження адреси функції.
  • Покажчик на функцію або використовується для виклику функції, або його можна надіслати як аргумент до іншої функції.
Покажчик на функцію в C++

Покажчик на функцію в C++

Синтаксис :



return_type (*FuncPtr) (parameter type, ....);>

Посилання та розіменування покажчика функції в C++

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

використання Інтернету

Посилання: Коли покажчику призначається адреса функції, яка буде з ним асоційована, цей процес називається посиланням.

Розіменування: Коли ми використовуємо оператор (*), щоб отримати значення, що зберігається в покажчику.

Синтаксис:

// Declaring return_type (*FuncPtr) (parameter type, ....); // Referencing FuncPtr= function_name; // Dereferencing data_type x=*FuncPtr;>

Покажчик на функцію, який використовується для виклику функції

Тут ми бачимо, як ми вказуємо вказівник на функцію та викликаємо її за допомогою цього вказівника. Це ефективний спосіб використання

приклад:

C++


як отримати приховані програми



// C++ program to implementation> // Function Pointer> #include> using> namespace> std;> int> multiply(>int> a,>int> b) {>return> a * b; }> int> main()> {> >int> (*func)(>int>,>int>);> >// func is pointing to the multiplyTwoValues function> >func = multiply;> >int> prod = func(15, 2);> >cout <<>'The value of the product is: '> << prod << endl;> >return> 0;> }>

>

>

Вихід

The value of the product is: 30>

У наведеній вище програмі ми оголошуємо функцію multiply, де ми множимо два елементи a і b, а потім повертаємо результат. Але замість безпосереднього виклику функції ми використовуємо вказівник на функцію prod, який виконує ту саму роботу за нас.

перетворення рядка в ціле

Передача покажчика функції як параметра

При оголошенні вказівника на функцію для збереження адреси пам’яті функції, але коли ми хочемо передати значення, що повертається, наступній функції. У нас є два способи виконання цього завдання. По-перше, або передайте отримане значення, або по-друге, передайте вказівник на функцію, який уже існує.

приклад:

C++




// C++ Program for demonstrating> // function pointer as pointer> #include> using> namespace> std;> const> int> a = 15;> const> int> b = 2;> // Function for Multiplication> int> multiply() {>return> a * b; }> // Function containing function pointer> // as parameter> void> print(>int> (*funcptr)())> {> >cout <<>'The value of the product is: '> << funcptr()> ><< endl;> }> // Driver Function> int> main()> {> >print(multiply);> >return> 0;> }>

колесо миші не прокручується належним чином

>

>

Вихід

The value of the product is: 30>

Часова складність: O(1).
Допоміжні приміщення: O(1).

У наведеній вище програмі ми оголошуємо функцію множення, у якій множимо 2 змінні a і b. Ми передаємо вказівник на функцію як параметр у функції друку, тут ми використовуємо вказівник на функцію, щоб обчислити значення з функції множення, а потім це значення у функції друку.