Funkcijų rodyklė C++
Būtinos sąlygos:
Rodyklės yra simboliniai adresų atvaizdai. Jie leidžia programoms imituoti skambutį pagal nuorodą, taip pat kurti ir valdyti dinamines duomenų struktūras. Elementų kartojimas masyvuose ar kitose duomenų struktūrose yra vienas iš pagrindinių rodyklių naudojimo būdų.
Kintamojo, su kuriuo dirbate, adresas priskiriamas žymeklio kintamajam, kuris nurodo į tą patį duomenų tipą (pvz., int arba eilutę).
Sintaksė :
datatype *var_name;
Pareigos adresas: Visi žinome, kad kiekvienos funkcijos kodas yra atmintyje, todėl kiekviena funkcija turi adresą, kaip ir visi kiti programos kintamieji. Funkcijos pavadinimas gali būti naudojamas norint rasti funkcijos adresą. Funkcijos adresą galime gauti tiesiog parašę funkcijos pavadinimą be skliaustų funkcijoje.
Norėdami sužinoti daugiau apie tai, žr. straipsnį – funkcijos adresas .
Funkcijų rodyklė C++
- Funkcijų rodyklė yra naudojama funkcijoms nurodyti, panašiai, rodyklės naudojamos kintamiesiems nurodyti.
- Jis naudojamas funkcijos adresui išsaugoti.
- Funkcijos rodyklė naudojama funkcijai iškviesti arba gali būti siunčiama kaip argumentas kitai funkcijai.
Funkcijų rodyklė C++
Sintaksė :
return_type (*FuncPtr) (parameter type, ....);
Funkcijų rodyklės nuorodų teikimas ir nuorodos išjungimas C++
Panašiai kaip rodyklė, naudojama su kintamaisiais, nuorodų teikimą ir nuorodų panaikinimą atliekame funkcijos žymekliu.
Nuoroda: Kai žymekliui priskiriamas su juo susietos funkcijos adresas, šis procesas vadinamas nuoroda.
Nuorodų panaikinimas: Kai naudojame (*) operatorių, kad gautume žymeklyje saugomą reikšmę.
Sintaksė:
// Declaring return_type (*FuncPtr) (parameter type, ....); // Referencing FuncPtr= function_name; // Dereferencing data_type x=*FuncPtr;
Funkcijos žymeklis, naudojamas funkcijai iškviesti
Čia matome, kaip nukreipiame žymeklį į funkciją ir iškviečiame ją naudodami tą žymeklį. Tai efektyvus naudojimo būdas
Pavyzdys:
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;> }> |
Išvestis
The value of the product is: 30
Aukščiau pateiktoje programoje deklaruojame funkciją dauginti, kai padauginame du elementus a ir b, tada grąžiname rezultatą. Tačiau užuot tiesiogiai iškvietę funkciją, naudojame funkcijos rodyklės prod, kuris atlieka tą patį darbą už mus.
Funkcijos žymeklio perdavimas kaip parametras
Deklaruojant funkcijos žymeklį išsaugoti funkcijos atminties adresą, bet kai norime perduoti grąžinimo reikšmę kitai funkcijai. Šiai užduočiai atlikti turime du būdus. Pirma, perduokite gautą reikšmę arba antrą kartą perkelkite jau egzistuojančią funkcijos žymeklį.
Pavyzdys:
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;> }> |
Išvestis
The value of the product is: 30
Laiko sudėtingumas: O(1).
Pagalbinė erdvė: O(1).
Aukščiau pateiktoje programoje deklaruojame daugybos funkciją, kurioje padauginame 2 kintamuosius a ir b. Mes perduodame funkcijos žymeklį kaip parametrą spausdinimo funkcijoje, čia mes naudojame funkcijos žymeklį, norėdami apskaičiuoti reikšmę iš daugybos funkcijos, o tada tą reikšmę spausdinimo funkcijoje.