logo

Toimintoosoitin C++:ssa

Edellytykset:

Osoittimet ovat symbolisia esityksiä osoitteista. Niiden avulla ohjelmat voivat simuloida puhelukohtaisesti sekä luoda ja käsitellä dynaamisia tietorakenteita. Elementtien iterointi taulukoissa tai muissa tietorakenteissa on yksi osoittimien pääkäytöstä.

Käyttämäsi muuttujan osoite on määritetty osoitinmuuttujalle, joka osoittaa samaan tietotyyppiin (kuten int tai merkkijono).



Syntaksi :

datatype *var_name;>

Toiminnan osoite: Tiedämme kaikki, että jokaisen funktion koodi on muistissa, joten jokaisella funktiolla on osoite kuten kaikilla muillakin ohjelman muuttujilla. Funktion nimen avulla voidaan löytää funktion osoite. Voimme saada funktion osoitteen kirjoittamalla funktion nimen ilman sulkeita funktioon.

Saat lisätietoja tästä artikkelista – funktion osoite .

Toimintoosoitin C++:ssa

  • Funktioosoitinta käytetään osoittamaan toimintoja, samoin osoittimia käytetään osoittamaan muuttujia.
  • Sitä käytetään funktion osoitteen tallentamiseen.
  • Funktioosoitinta käytetään joko funktion kutsumiseen tai se voidaan lähettää argumenttina toiselle funktiolle.
Toimintoosoitin C++:ssa

Toimintoosoitin C++:ssa

Syntaksi :

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

Funktioosoittimen viittaus ja viittauksen poistaminen C++:ssa

Samoin kuin muuttujien kanssa käytettävä osoitin, teemme viittauksen ja viittauksen poistamisen funktioosoittimella.

Viittaus: Kun osoittimelle on allokoitu siihen liitettävän funktion osoite, tätä prosessia kutsutaan viittaukseksi.

Viittauksen poistaminen: Kun käytämme (*)-operaattoria saadaksemme osoittimeen tallennetun arvon.

Syntaksi:

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

Funktioosoitin, jota käytetään funktion kutsumiseen

Tässä näemme, kuinka osoitamme osoittimen funktioon ja kutsumme sitä käyttämällä tätä osoitinta. Se on tehokas tapa käyttää

Esimerkki:

C++


java prioriteettijono



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

>

>

Lähtö

The value of the product is: 30>

Yllä olevassa ohjelmassa julistetaan funktio kerrotaan, jossa kerrotaan kaksi elementtiä a ja b ja palautetaan sitten tulos. Mutta sen sijaan, että kutsuisimme funktiota suoraan, käytämme funktion osoitinta prod, joka tekee saman työn puolestamme.

Toimintoosoittimen välittäminen parametrina

Kun julistetaan funktioosoitin tallentamaan funktion muistiosoite, mutta kun haluamme siirtää paluuarvon seuraavalle funktiolle. Meillä on kaksi tapaa suorittaa tämä tehtävä. Ensin joko ohita saamamme arvo tai toiseksi ohita jo olemassa oleva funktioosoitin.

Esimerkki:

C++


25 c - k



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

>

>

Lähtö

The value of the product is: 30>

Aika monimutkaisuus: O(1).
Aputila: O(1).

Yllä olevassa ohjelmassa kerrotaan kerroinfunktio, jossa kerrotaan 2 muuttujaa a ja b. Toimitamme funktioosoittimen parametrina print-funktiossa, tässä funktioosoittimella lasketaan kertoja-funktiosta arvo ja sitten tämä arvo print-funktiossa.