logo

Indicator de funcție în C++

Cerințe preliminare:

Pointerii sunt reprezentări simbolice ale adreselor. Acestea permit programelor să simuleze apelul prin referință, precum și să creeze și să manipuleze structuri dinamice de date. Iterarea peste elemente din matrice sau alte structuri de date este una dintre principalele utilizări ale pointerilor.



tutoriale java

Adresa variabilei cu care lucrați este atribuită variabilei pointer care indică același tip de date (cum ar fi un int sau șir).

Sintaxă :

datatype *var_name;>

Adresa funcției: Știm cu toții că codul fiecărei funcții se află în memorie, astfel încât fiecare funcție are o adresă ca toate celelalte variabile din program. Numele unei funcții poate fi folosit pentru a găsi adresa funcției. Putem obține adresa unei funcții doar scriind numele funcției fără paranteze în funcție.



Pentru a afla mai multe despre acest lucru, consultați articolul – adresa funcției .

Indicator de funcție în C++

  • Indicatorul de funcție este folosit pentru a indica funcții, în mod similar, pointerii sunt folosiți pentru a indica variabile.
  • Este utilizat pentru a salva adresa unei funcții.
  • Indicatorul funcției este fie folosit pentru a apela funcția, fie poate fi trimis ca argument către o altă funcție.
Indicator de funcție în C++

Indicator de funcție în C++

Sintaxă :



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

Referentarea și dereferențiarea indicatorului de funcție în C++

Similar cu pointerul folosit cu variabile, efectuăm referire și dereferențiere cu un pointer de funcție.

Referințe: Când pointerului i se alocă adresa funcției care trebuie asociată cu acesta, atunci acest proces este denumit referire.

Dereferențiere: Când folosim operatorul (*) pentru a obține valoarea stocată în pointer.

Sintaxă:

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

Indicatorul de funcție folosit pentru a apela funcția

În aceasta, vedem cum îndreptăm un pointer către o funcție și o numim folosind acel pointer. Este o modalitate eficientă de utilizare

Exemplu:

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;> }>

Freddie Mercury
>

>

Ieșire

The value of the product is: 30>

În programul de mai sus, declarăm o funcție multiplicare unde înmulțim două elemente a și b, apoi returnăm rezultatul. Dar, în loc să apelăm direct funcția, folosim un indicator de funcție prod care face aceeași muncă pentru noi.

Trecerea unui indicator de funcție ca parametru

Când declarăm un pointer de funcție pentru a stoca adresa de memorie a funcției, dar, când dorim să transmitem valoarea returnată la următoarea funcție. Avem două metode pentru a îndeplini această sarcină. Mai întâi, fie treceți valoarea pe care am primit-o, fie treceți în al doilea rând indicatorul funcției care există deja.

Exemplu:

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;> }>

număr aleator în java

>

>

Ieșire

The value of the product is: 30>

Complexitatea timpului: O(1).
Spatiu auxiliar: O(1).

În programul de mai sus, declarăm o funcție de multiplicare în care înmulțim 2 variabile a și b. Trecem indicatorul funcției ca parametru în funcția de imprimare, aici folosim indicatorul funcției pentru a calcula valoarea din funcția de multiplicare și apoi acea valoare în funcția de imprimare.