Funktioosoittimien käyttäminen C++:ssa

Funktioosoittimien Kayttaminen C Ssa



C++:ssa, toimintoosoittimet tarjoavat tehokkaan työkalun toimintojen käsittelyyn datana. A toimintoosoitin on muuttuja, joka sisältää funktion muistiosoitteen. Se toimii samalla tavalla kuin tavallinen osoitin, paitsi että se tallentaa funktion osoitteen tietoobjektin osoitteen sijaan. Se on tärkeää pitää mielessä toimintoosoittimet ovat yksinkertaisesti toisenlaisia ​​muuttujia C++:ssa, ja sellaisenaan ne on ilmoitettava ja alustettava samalla tavalla kuin muut muuttujat.

Funktioosoittimen määrittäminen

Syntaksi ilmoittaa a toimintoosoitin on seuraava:







palautustyyppi ( * func_ptr_name ) ( parametriluettelo ) ;



Tässä, func_ptr_name on nimi toimintoosoitin , palautustyyppi on funktion palautustyyppi ja parametriluettelo on luettelo parametreista, jotka funktio ottaa.



Tässä on koodiesimerkki funktioosoittimen käyttämiseksi C++:ssa.





#include
#include
käyttäen nimiavaruutta std;

tyhjä kuutio ( int x )
{
cout << 'Luvun kuutio on' << x * x * x << endl;
}

int main ( )
{
mitätön ( * funPtr ) ( int ) ;
funPtr = & kuutio;
funPtr ( 5 ) ;
palata 0 ;
}

Yllä olevassa koodissa toimintoosoitin julistetaan mitättömäksi (*funPtr)(int) , ja se alustetaan tallentamalla cube()-funktion osoite sisään funPtr , tarkoittaen sitä funPtr viittaa toimintoon kuutio () . Siten voimme kutsua kuutiofunktiota käyttämällä funPtr ( toimintoosoitin ) kuten koodissa funPtr (5).



Lähtö

A toimintoosoitin , toisin kuin muut osoittimet, osoittaa koodiin eikä dataan. A toimintoosoitin tallentaa usein suoritettavan koodin alun. Toisin kuin tavalliset osoittimet, emme käytä toimintoosoittimet varata tai vapauttaa muistia. Kuten yllä olevassa ohjelmassa näimme, on myös mahdollista käyttää funktion nimeä sen sijainnin määrittämiseen. Samat säännöt, jotka koskevat normaaleja osoittimia, pätevät myös taulukkoon toimintoosoittimet . Toimintoosoittimia voidaan käyttää kytkinkoteloiden sijasta. A toimintoosoitin voidaan toimittaa argumenttina ja palauttaa funktiosta, aivan kuten dataosoitin voi.

Toimintoosoittimien edut

Tärkeimmät edut toimintoosoittimet on lueteltu alla.

1: Koodin uudelleenkäyttö

Yksi käytön tärkeimmistä eduista toimintoosoittimet että ne mahdollistavat koodin uudelleenkäytön. Sen sijaan, että joutuisit kirjoittamaan ainutlaatuisia funktioita jokaiseen tilanteeseen, voit suunnitella funktioita, jotka ovat riittävän yleisiä käsittelemään monenlaisia ​​erityyppisiä syöttötietoja määrittämällä toimintoosoitin kirjoita ja käytä sitä johdonmukaisesti koko koodin ajan. Sen sijaan sinun tarvitsee vain tarjota oikeus toimintoosoitin ajon aikana tai määritystiedoston kautta, ja toiminto mukautuu nykyisen työn vaatimuksiin. Tämä ei vain nopeuttaa kehitysprosessia, vaan myös parantaa koodisi modulaarisuutta ja pitkäaikaista ylläpidettävyyttä.

2: Dynamic Runtime Behavior

Kyky toteuttaa dynaamista ajonaikaista käyttäytymistä on toinen käytön etu toimintoosoittimet . Sinulla voi esimerkiksi olla funktio, joka suorittaa tietyn laskelman, mutta laskennan suorittamiseen käytetty tarkka algoritmi riippuu käyttäjän syötteestä tai järjestelmäolosuhteista. Tallentamalla a toimintoosoitin joka vastaa kutakin mahdollista algoritmia, voit valita sopivan ajon aikana käyttämällä if-else-lauseita tai muuta ehdollista logiikkaa. Tekemällä tämän voit kehittää erittäin joustavaa koodia, joka voi reagoida muuttuviin olosuhteisiin ilman, että tarvitset koko ohjelman uudelleenmuodostusta.

3: Joustavuus

C++:ssa, toimintoosoittimet tarjoavat tehokkaan työkalun joustavan, yleisen koodin luomiseen. Toimintoosoittimet ovat olennaisesti muuttujia, jotka sisältävät funktion muistipaikan osoitteen. Ne mahdollistavat funktioiden tallentamisen tietorakenteisiin, kuten taulukoihin tai listoihin, syöttämisen argumentteina muille funktioille ja jopa dynaamisesti oikean suoritettavan funktion valitsemiseen ajonaikaisten olosuhteiden tai käyttäjän syötteen perusteella.

Johtopäätös

Toimintoosoittimet C++:ssa ovat tehokkaita, jotka tukevat dynaamista ajonaikaista käyttäytymistä ja koodin uudelleenkäyttöä. Voit kirjoittaa erittäin joustavaa ja mukautuvaa koodia, joka voi mukautua muuttuviin vaatimuksiin ajan myötä tallentamalla funktioiden osoitteet muuttujiin. Toimintoosoittimet ovat välttämättömiä jokaiselle ammattimaiselle C++-kooderille huolimatta siitä, että niiden oppiminen saattaa vaatia jonkin verran työtä.