C++ puhul on funktsioon koodiplokk, mis võetakse kasutusele mõne funktsiooni täitmiseks ja osutit kasutatakse funktsiooni muutujatele osutamiseks. Osutajad on määratud aadressiga.
Kuidas naasta kursorit C++ funktsioonidest
C++-s on võimalik funktsioonist kursor tagastada. Seda saab saavutada, deklareerides tagastamistüübi funktsiooni selle funktsiooni osutajana. Iga loodud funktsioon võtab mällu määratud aadressi. Tärn * lisatakse funktsiooni nimest vasakule.
Süntaks
See on süntaks C++-i funktsioonist osuti tagastamiseks:
tagasi tüüp ( * funktsiooni_osuti_nimi ) ( argumendi_tüüp_1, argumendi_tüüp_2, ……, argumendi_tüüp_n ) = funktsiooni_nimi ;
Näide 1
See näide illustreerib kursori tagastamist C++-i funktsioonist:
#include
kasutades nimeruum std ;
tühine tulemus ( int & a )
{
a + = 10 ;
}
int peamine ( )
{
int x = 40 ;
// osuti naaseb funktsioonist
tühine ( * ptr ) ( int & ) = & tulemus ;
ptr ( x ) ;
cout << x << endl ;
tagasi 0 ;
}
Selles lähtekoodis deklareeritakse tühitulemuse funktsioon ja see võtab viite int a-le, mida suurendatakse 10 korda. Muutuja x salvestab väärtuse 40 ja *ptr osutab funktsioonile int&. Ass ptr osutab tulemusele, nii et x-i suurendatakse 10 võrra.
Sisend x väärtust suurendatakse 10 võrra ja tagastatakse 50 võrra.
Näide 2
See on näide, mis arvutab töötajate nädalapalga:
#includekasutades nimeruum std ;
kahekordne & Get WeeklyHours ( )
{
kahekordne h = 32.65 ;
kahekordne & tundi = h ;
tagasi tundi ;
}
kahekordne * GetSalary ( )
{
kahekordne palk = 42.48 ;
kahekordne * Tunnipalk = & palk ;
tagasi Tunnipalk ;
}
int peamine ( )
{
kahekordne tundi = Get WeeklyHours ( ) ;
kahekordne palk = * GetSalary ( ) ;
cout << 'Tööliste nädalatunnid: ' << tundi << endl ;
cout << 'Tööliste tunnipalk:' << palk << endl ;
kahekordne Nädalapalk = tundi * palk ;
cout << 'Tööliste nädalapalk:' << Nädalapalk << endl ;
tagasi 0 ;
}
Selles lähtekoodis on sisestatud tunnid ja tunnipalk. Funktsiooni meetodi tagastuskursorit kasutatakse nendele parameetritele juurdepääsuks ja töötajate nädalapalga arvutamiseks.
Teades nädalatunde ja tunnipalka, saab nädalapalka arvutada mõlema tähtaja korrutamisega.
Järeldus
C++-s on võimalik funktsioonist kursor tagastada. Seda saab saavutada, deklareerides tagastamistüübi funktsiooni selle funktsiooni osutajana. Iga loodud funktsioon võtab mällu määratud aadressi.