functions c with types examples
Vrste funkcij v jeziku C ++ skupaj z njihovo uporabo.
V naših prejšnjih vajah do zdaj smo v C ++ videli različne koncepte, kot so spremenljivke, razredi pomnilnika, operatorji, nizi, nizi itd.
V tej vadnici bomo nadaljevali in razpravljali o konceptu funkcij. Funkcije se imenujejo tudi metode, podprogrami ali postopki.
=> Tukaj preberite obsežno serijo vadnic za C ++.
c # vprašanja in odgovori za izkušene s primeri
Kaj se boste naučili:
- Kako določimo funkcijo?
- Vrste funkcij v jeziku C ++
- Izjava o funkciji
- Opredelitev funkcije
- Klicanje funkcije
- Formalni in dejanski parametri
- Vrnjene vrednosti
- Funkcije praznine
- Prenos parametrov v funkcije
- Privzeti parametri
- Parametri Const
- Vgrajene funkcije
- Uporaba struktur v funkcijah
- Zaključek
- Priporočeno branje
Kako določimo funkcijo?
Funkcija je nabor stavkov, ki so sestavljeni za izvajanje določene naloge. To so lahko izjave, ki opravljajo nekaj ponavljajočih se nalog ali izjave, ki opravljajo nekatere posebne naloge, kot je tiskanje itd.
Ena od funkcij funkcije je poenostavitev kode z razdelitvijo na manjše enote, imenovane funkcije. Še ena ideja uporabe funkcij je ta, da nam prihrani, da vedno znova pišemo isto kodo. Preprosto moramo napisati eno funkcijo in jo nato poklicati po potrebi, ne da bi morali vedno znova pisati isti niz izjav.
Vrste funkcij v jeziku C ++
V C ++ imamo dve vrsti funkcij, kot je prikazano spodaj.

Vgrajene funkcije
Vgrajene funkcije se imenujejo tudi funkcije knjižnice. To so funkcije, ki jih ponuja C ++, in jih ni treba zapisovati sami. Te funkcije lahko neposredno uporabimo v naši kodi.
Te funkcije so nameščene v zaglavnih datotekah C ++. Na primer ,, so glave, ki imajo vgrajene matematične funkcije in funkcije nizov.
Oglejmo si primer uporabe vgrajenih funkcij v programu.
#include #include using namespace std; int main() { string name; cout << 'Enter the input string:'; getline (std::cin, name); cout << 'String entered: ' << name << '!
'; int size = name.size(); cout<<'Size of string : '< Izhod:
Vnesite vnosni niz: Pomoč za testiranje programske opreme
Vnesen niz: Pomoč za testiranje programske opreme!
Velikost strune: 21
Tu uporabljamo glave in. Podatkovni tipi in druge vhodno / izhodne funkcije so definirani v knjižnici. Funkcije niza, ki se uporabljajo kot getline, velikost, so del glave.
Uporabniško določene funkcije
C ++ svojim uporabnikom omogoča tudi, da sami določijo svoje funkcije. To so uporabniško določene funkcije. Funkcije lahko definiramo kjer koli v programu in jih nato pokličemo iz katerega koli dela kode. Tako kot spremenljivke jo je treba deklarirati pred uporabo, tudi funkcije je treba deklarirati, preden so poklicane.
Podrobno se pogovorimo o uporabniško določenih funkcijah.
Splošna sintaksa za uporabniško določene funkcije (ali preprosto funkcije) je navedena spodaj:
return_type functionName(param1,param2,….param3) { Function body; } Kot je prikazano zgoraj, ima vsaka funkcija:
- Vrsta vrnitve: To je vrednost, ki jo funkcije po vrnitvi določene naloge vrnejo klicni funkciji.
- functionName : Identifikator, ki se uporablja za poimenovanje funkcije.
- Seznam parametrov: Označeno z param1, param2,… paramn v zgornji sintaksi. To so argumenti, ki se funkciji posredujejo, ko se izvede klic funkcije. Seznam parametrov ni obvezen, tj. Lahko imamo funkcije, ki nimajo parametrov.
- Telo funkcije: Skupina izjav, ki izvajajo določeno nalogo.
Kot smo že omenili, moramo funkcijo pred uporabo 'deklarirati'.
Izjava o funkciji
Deklaracija funkcije sporoči prevajalniku o vrnjeni funkciji, številu parametrov, ki jih uporablja funkcija, in njenih podatkovnih tipih. Vključitev imen parametrov v funkciji je izjava neobvezna. Deklaracija funkcije se imenuje tudi kot prototip funkcije.
Spodaj smo navedli nekaj primerov izjave funkcije za vašo referenco.
int sum(int, int);Zgornja deklaracija je funkcije 'sum', ki za parametre vzame dve celi števili in vrne celoštevilčno vrednost.
void swap(int, int);To pomeni, da funkcija zamenjave zajema dva parametra tipa int in ne vrne nobene vrednosti, zato je tip vrnitve ničen.
void display();Prikaz funkcije ne zajema nobenih parametrov in tudi ne vrne nobene vrste.
Opredelitev funkcije
Definicija funkcije vsebuje vse, kar vsebuje izjava funkcije, poleg tega pa vsebuje tudi telo funkcije, zaklenjeno v oklepajih ({}).
Poleg tega bi moral imeti tudi imenovane parametre. Ko je funkcija poklicana, nadzor programa preide na definicijo funkcije, tako da je mogoče izvršiti kodo funkcije. Ko je izvajanje funkcije končano, nadzor preide nazaj do točke, kjer je bila funkcija poklicana.
Za zgornjo izjavo funkcije swap je opredelitev navedena spodaj:
void swap(int a, int b){ b = a + b; a = b - a; b = b - a; }Upoštevajte, da lahko deklaracija in definicija funkcije gresta skupaj. Če določimo funkcijo, preden se sklicujemo nanjo, potem ni potrebe po ločeni izjavi.
Vzemimo celoten primer programiranja za prikaz funkcije.
#include using namespace std; void swap(int a, int b) { //here a and b are formal parameters b = a + b; a = b - a; b = b - a; cout<<'
After swapping: '; cout<<'a = '< Klicanje funkcije Ko imamo funkcijo v našem programu, potem odvisno od zahteve moramo to funkcijo poklicati ali poklicati. Šele ko funkcijo pokličete ali prikličete, bo izvedla svoj niz stavkov, da zagotovi želene rezultate.
Funkcijo lahko pokličete kjer koli v programu. Lahko ga pokličete iz glavne funkcije ali katere koli druge funkcije, če program uporablja več funkcij. Funkcija, ki prikliče drugo funkcijo, se imenuje 'Klicna funkcija'.
V zgornjem primeru zamenjave številk je funkcija swap poklicana v glavni funkciji. Zato glavna funkcija postane klicna funkcija.
Formalni in dejanski parametri
Že smo videli, da imamo lahko parametre za funkcije. Parametri funkcije so v definiciji funkcije navedeni kot seznam parametrov, ki sledi imenu funkcije. Ko je funkcija poklicana, moramo posredovati dejanske vrednosti teh parametrov, tako da lahko funkcija z uporabo teh dejanskih vrednosti opravi svojo nalogo.
Pokličejo se parametri, ki so definirani v definiciji funkcije Formalni parametri . Pokličejo se parametri v klicu funkcije, ki so dejanske vrednosti Dejanski parametri.
V zgornjem primeru zamenjave številk smo zapisali komentarje za formalne in dejanske parametre. V klicni funkciji, tj. Main, se vrednost dveh celih števil prebere in posreduje funkciji swap. To so dejanski parametri.
Definicije teh parametrov lahko vidimo v prvi vrstici definicije funkcije. To so formalni parametri.
Upoštevajte, da se morata vrsta formalnih in dejanskih argumentov ujemati. Vrstni red formalnih in dejanskih parametrov se mora tudi ujemati.
Vrnjene vrednosti
Ko funkcija izvede predvideno nalogo, mora rezultat vrniti klicni funkciji. Za to potrebujemo vrnitev funkcije. Funkcija lahko vrne eno vrednost klicni funkciji. Vrnjeni tip funkcije je naveden skupaj s prototipom funkcije.
Vzemimo primer dodajanja dveh številk za prikaz vrst vrnitve.
#include using namespace std; int sum(int a, int b){ return (a+b); } int main() { int a, b, result; cout<>a>>b; result = sum(a,b); cout<<'
Sum of the two numbers : '< Izhod:
Vnesite dve številki, ki jih želite dodati: 11 11
Vsota dveh števil: 22
V zgornjem primeru imamo vsoto funkcije, ki vzame dva celoštevilna parametra in vrne celoštevilski tip. V glavni funkciji z vhoda v konzolo preberemo dve celi števili in ju posredujemo v funkcijo vsote. Ker je vrsta vrnitve celo število, imamo na LHS spremenljivko rezultata, RHS pa funkcijski klic.
Ko se funkcija izvrši, je izraz (a + b), ki ga vrne vsota funkcije, dodeljen spremenljivki rezultata. To prikazuje, kako se uporablja vrnjena vrednost funkcije.
Funkcije praznine
Videli smo, da splošna sintaksa funkcije zahteva določitev vrste vrnitve. Če pa imamo v primeru takšno funkcijo, ki ne vrne nobene vrednosti, kaj v tem primeru določimo kot vrsto vrnitve? Odgovor je, da uporabimo brezvredni tip 'void', da označimo, da funkcija ne vrne vrednosti.
V takem primeru se funkcija imenuje 'void function' in njen prototip bo podoben
void functionName (param1, param2,… .param 3);
Opomba : Za dobro prakso se šteje izjava „vrnitev;“ na koncu funkcije praznine zaradi jasnosti.
Prenos parametrov v funkcije
Koncept dejanskih in formalnih parametrov smo že videli. Vemo tudi, da dejanski parametri posredujejo vrednosti funkciji, ki jo prejmejo parametri formata. To se imenuje posredovanje parametrov.
V jeziku C ++ imamo določene načine za posredovanje parametrov, kot je opisano spodaj.
Prenesite vrednost
V programu za zamenjavo dveh celih števil, o katerem smo že govorili, smo videli, da smo v glavnem prebrali celo število 'a' in 'b' in jih predali funkciji zamenjave. To je tehnika prenosa vrednosti.
V tehniki prenosa parametrov pri prenosu vrednosti se kopije vrednosti dejanskih parametrov posredujejo formalnim parametrom. Zaradi tega so dejanski in formalni parametri shranjeni na različnih lokacijah pomnilnika. Tako se spremembe formalnih parametrov znotraj funkcije ne odražajo zunaj funkcije.
To lahko bolje razumemo, če ponovno obiščemo zamenjavo dveh številk.
#include using namespace std; void swap(int a, int b) { //here a and b are formal parameters b = a + b; a = b - a; b = b - a; cout<<'
After swapping inside Swap:
'; cout<<'a = '< Prenesite referenco Prenos referenc je še ena tehnika, ki jo uporablja C ++ za posredovanje parametrov funkcijam. Pri tej tehniki namesto posredovanja kopij dejanskih parametrov posredujemo sklice na dejanske parametre.
Opomba: Sklici niso nič drugega kot vzdevki spremenljivk ali z enostavnimi besedami, to je drugo ime, ki je dano spremenljivki. Zato spremenljivka in njen sklic delita isto lokacijo pomnilnika. Podrobneje se bomo naučili referenc v nadaljevanju.
Pri prehodu z referenčno tehniko uporabljamo te sklice na dejanske parametre, zato se spremembe formalnih parametrov v funkciji odražajo nazaj v klicni funkciji.
Prilagodimo funkcijo zamenjave, tako da bralci bolje razumejo koncept.
#include #include using namespace std; void swap(int &a, int &b){ int temp = a; a = b; b = temp; } int main() { int a,b; cout<>a>>b; cout<<'a = '< Zato se spremembe formalnih parametrov v funkciji zamenjave odražajo v glavni funkciji in dobimo zamenjane vrednosti.
Pojdite mimo kazalca
V C ++ lahko s pomočjo kazalnih spremenljivk parametre tudi prenesemo v delovanje. Tehnika podajanja mimo kazalca daje enake rezultate kot rezultat mimo reference. To pomeni, da si tako formalni kot dejanski parametri delijo iste lokacije v pomnilniku, spremembe v funkciji pa se odražajo v klicni funkciji.
Edina razlika je v tem, da se pri podajanju po referenci ukvarjamo z referencami ali vzdevki parametrov, medtem ko pri tehniki podajanja s kazalcem za podajanje parametrov uporabljamo kazalec spremenljivk.
Kazalne spremenljivke se razlikujejo od sklicev, pri katerih kazalne spremenljivke kažejo na določeno spremenljivko in za razliko od referenc lahko spremenljivko spremenimo, na katero kaže. Podrobnosti kazalca bomo raziskali v naslednjih vajah.
Ponovno predstavljamo zamenjavo dveh celih števil, da dokažemo tehniko Pass by Pointer.
#include #include using namespace std; void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int a,b; cout<>a>>b; cout<<'a = '< Privzeti parametri V C ++ lahko določimo privzete vrednosti za parametre funkcije. V tem primeru, ko prikličemo funkcijo, ne določimo parametrov. Namesto tega funkcija sprejme privzete parametre, ki so navedeni v prototipu.
Naslednji primer prikazuje uporabo privzetih parametrov.
#include #include using namespace std; int mathoperation(int a, int b = 3, int c = 2){ return ((a*b)/c); } int main() { int a,b,c; cout<>a>>b>>c; cout< Izhod:
Vnesite vrednosti za a, b in c: 10 4 6
Klic k matoperaciji z 1 arg: 15
Klic k matoperaciji z 2 arg: 20
Klic k matoperaciji s 3 arg: 6
Kot je prikazano v primeru kode, imamo funkcijo 'mathoperation', ki vzame tri parametre, od katerih smo za dva parametra podali privzete vrednosti. Nato v glavni funkciji to funkcijo pokličemo trikrat z drugačnim seznamom argumentov.
Prvi klic je samo z enim argumentom. V tem primeru imata druga dva argumenta privzete vrednosti. Naslednji klic je z dvema argumentoma. V tem primeru bo tretji argument imel privzeto vrednost. Tretji razpis je s tremi argumenti. V tem primeru bodo, kot smo navedli vse tri argumente, privzete vrednosti prezrte.
Upoštevajte, da pri zagotavljanju privzetih parametrov vedno izhajamo iz najbolj desnega parametra. Prav tako ne moremo preskočiti parametra vmes in določiti privzete vrednosti za naslednji parameter.
Zdaj pa pojdimo na nekaj konceptov, povezanih s posebnimi funkcijami, ki so pomembni s stališča programerja.
Parametri Const
Funkcije lahko s pomočjo ključne besede ‘const’ posredujemo tudi stalne parametre. Ko je parameter ali sklic const, ga znotraj funkcije ni mogoče spremeniti.
Upoštevajte, da parametra const ne moremo posredovati neformalnemu formalnemu parametru. Parameter const in non-const pa lahko prenesemo v formalni parameter const.
Podobno lahko imamo tudi const return-type. V tem primeru tudi vrste povratka ni mogoče spremeniti.
Oglejmo si primer kode, ki uporablja sklice const.
#include #include using namespace std; int addition(const int &a, const int &b){ return (a+b); } int main() { int a,b; cout<>a>>b; cout<<'a = '< Izhod:
Vnesite dve številki, ki jih želite zamenjati: 22 33
a = 2 b = 33
Rezultat dodajanja: 55
V zgornjem programu imamo formalne parametre const. Upoštevajte, da so dejanski parametri navadne neskladne spremenljivke, ki smo jih uspešno podali. Ker so formalni parametri const, jih znotraj funkcije ne moremo spreminjati. Torej samo izvedemo operacijo seštevanja in vrnemo vrednost.
Če poskušamo spremeniti vrednosti a ali b znotraj funkcije, bo prevajalnik izdal napako.
Vgrajene funkcije
Vemo, da za izvedbo klica funkcije interno vključuje prevajalnik, ki shrani stanje programa v sklad, preden preda funkcijo nadzor.
Ko se funkcija vrne, mora prevajalnik ponovno pridobiti stanje programa in nadaljevati od tam, kjer je ostala. To predstavlja režijo. Torej, v C ++, kadar imamo funkcijo, sestavljeno iz nekaj stavkov, obstaja možnost, ki omogoča razširitev v vrstici. To naredimo tako, da funkcijo postavimo v vrstico.
Vgrajene funkcije so torej funkcije, ki se med izvajanjem razširijo, kar prihrani prizadevanja za klic funkcije in spreminjanje sklada. Toda tudi če funkcijo naredimo v vrstici, prevajalnik ne zagotavlja, da bo razširjena med izvajanjem. Z drugimi besedami, od prevajalnika je popolnoma odvisno, ali bo funkcija vdelana ali ne.
Nekateri prevajalniki zaznajo manjše funkcije in jih razširijo v vrstici, tudi če niso razglašene za vstavljene.
Sledi primer vstavljene funkcije.
inline int addition(const int &a,const int &b){ return (a+b); } Kot je prikazano zgoraj, pred definicijo funkcije predpišemo ključno besedo 'inline', da funkcijo naredimo inline.
Uporaba struktur v funkcijah
Strukturne spremenljivke lahko posredujemo kot parametre, da delujejo na podoben način, kot običajne spremenljivke kot parametre.
To je prikazano v naslednjem primeru.
kako preberem datoteko xml -
#include #include using namespace std; struct PersonInfo { int age; char name(50); double salary; }; void printStructInfo(PersonInfo p) { cout<<'PersonInfo Structure:'; cout<<'
Age:'< p.age; cout <> p.salary; printStructInfo(p); } Izhod:
Vnesite ime: Vedang
Vnesite starost: 22 let
Vnesite plačo: 45000,00
Struktura PersonInfo:
Starost: 22 let
Ime: Vedang
Plača: 45000

Kot je prikazano v zgornjem programu, posredujemo strukturo, da deluje na podoben način kot druge spremenljivke. Vrednosti za člane strukture beremo s standardnega vhoda in nato strukturo posredujemo funkciji, ki prikazuje strukturo.
Zaključek
Tu je šlo za osnove funkcij v C ++.
V naslednjih vajah bomo raziskali več o statičnih funkcijah v jeziku C ++.
=> Tukaj preverite popolno serijo C ++ BREZPLAČNIH vadb
Priporočeno branje
- Python funkcije
- Datum in čas v C ++ z primeri
- Funkcije skripta lupine Unix s parametri in vrnitvijo
- Vadnica Python DateTime s primeri
- Pomembne funkcije LoadRunner, ki se uporabljajo v skripti VuGen s primeri
- Funkcije niza Python
- Vadnica za glavne funkcije Pythona s praktičnimi primeri
- Prijateljske funkcije v C ++
