C++ alapok 6. rész – funkciók

Az előző leckékben már találkoztunk egy funkcióval a main funkcióval

int main()
{
    
}

Ahogy már tudjuk, mindég a main funkció fut lesz először a programunkban ám létrehozhatunk és használhatunk saját funkciókat is. Funkciókon keresztül szépen elkülöníthetjük programunk részeit, illetve lehetőségünk van szabályozni hogy egyes program részek mikor és hol kerüljenek futtatásra és hogy milyen paraméterekkel. Lássuk hogyan.

Az első dolog amit figyelembe kell vennünk hogy C++-ban csak a main funkció fut le automatikusan, a többi funkciót nekünk kell behívni közvetlenül vagy közvetve a main funkcióban és ezért a funkciókat a main funkció felett kell létrehoznunk, tehát a programunkban a main funkció mindég a többi funkció alatt kell hogy legyen.

Funkció létrehozásánál az első adat amit meg kell adni hogy milyen típusú értéket küldünk vissza a funkcióból. Akár csak a változóknál ez lehet integer, string, bool vagy float. Persze nem kötelező minden funkciónak bármiféle értéket  visszaküldeni, erre az esetre rendelkezésünkre áll egy 5. típus a void. A második adat amit meg kell adnunk, a funkció neve ami csak és kizárólag az angol ABC betűiből állhat. Lássunk egy példát.

void funkcio()
{
    cout << "ez egy másik funkció";
}

Ahogy láthatjuk ez a funkció semleges void mivel nem küldünk vissza semmilyen adatot a neve funkcio (ékezet nélkül) és egy szöveget ír ki. Ám ha most lefuttatjuk a programunkat, azt látjuk hogy semmi sem történik. Ez azért van mert a funkciót nem hívtuk be. Hogy behívjuk a funkciót, egyszerűen csak írjuk be a nevét zárójellel együtt a main funkcióba, így:

#include <iostream>

using namespace std;

void funkcio()
{
    cout << "ez egy másik funkció";
}

int main()
{
    funkcio();
}

Ne feledjük a funkciónk neve után kirakni a ; jelet ezzel jelezve hogy az utasításnak itt vége. Ha most lefuttatjuk a programunkat láthatjuk hogy a funkciónkban tárolt utasítás lefut és kiírja a szöveget. Ily módon akár többször is behívhatunk és lefuttathatunk egy funkcióban tárolt programrészt, ám a funkciók igazi erőssége abban rejlik hogy értékeket adhatunk meg vagy módosíthatunk a név után található zárójelben. Hogy ezt megtegyük, változókra lesz szükségünk amit a zárójelekben használhatunk, lássunk egy példát:

#include <iostream>

using namespace std;

void funkcio(string a)
{
    cout << a;
}

int main()
{
    funkcio("ez egy másik funkció");
}

Ahogy láthatjuk, létrehoztunk egy string változót közvetlenül a funkciónk neve után található zárójelben, ezzel jelezve hogy ide egy szöveget várunk amit kiíratunk a funkción belül, a szöveget pedig a funkció behívásakor írhatjuk be a zárójelek közé. Így minden alkalommal amikor behívunk egy funkciót más és más információt vihetünk be a funkció számára:
Impotence, or Erectile Dysfunction canadian cialis pharmacy is a dilemma many face. Bring a little spark back into your sex life and healthy body and soul. getting cialis is one of the most sought after anti-impotency medicines today. The djpaulkom.tv purchase generic cialis patent rights of the brand pill after the patent expires. It ensures sound mental and physical health. on sale at web-site order cheap cialis

int main()
{
    funkcio("első információ ");
    funkcio("második informácio ");
    funkcio("harmadik információ ");
}

Akár írhatunk egy funkciót ami összead 2 bármilyen számot amit megadunk és kiírja az eredményt:

#include <iostream>

using namespace std;

void funkcio(int a, int b)
{
    cout << a + b;
}

int main()
{
    funkcio(5,6);
}

Ahogy láthatjuk ebben az esetben már integer változókat hoztunk létre és ha lefuttatjuk a programot az kiírja a megadott számok összegét.

Persze előfordulhat hogy egy funkcióban lefutott művelet eredményét szeretnénk felhasználni. Jelen pillanatban csak megkapjuk, látjuk az eredményt, de nem vagyunk képesek azt felhasználni. Hogy használhassuk, az eredményt vissza kell küldenünk a funkcióból és hogy ezt megtegyük, első lépésként meg kell határoznunk az eredmény típusát ami ez esetben integer. Lássunk erre egy példát.

#include <iostream>

using namespace std;

int funkcio(int a, int b)
{
    return a + b;
}

int main()
{
    cout << funkcio(5,6) + 10;
}

Ahogy láthatjuk a funkciónk típusa ez esetben int mivel integer értéket küldünk vissza és a funkción belül a return parancsot használjuk a megadott számok összegének visszaküldéséhez. A main funkcióban pedig egyszerűen kiíratjuk a funkciónkból visszakapott eredmény és 10 összegét amire korábban void funkciót használva nem lettünk volna képesek mivel egyszerűen az eredményt nem küldtük vissza csak a funkciót futtattuk le.

Ahogy láthatjátok a funkciók rendkívül hasznosak, átláthatóbbá, elegánsabbá teszik programjainkat és sok esetben meg is könnyíthetik a dolgunkat mivel elég valamit egyszer leprogramoznunk és azt többször is felhasználhatjuk, számtalan módon, eltérő értékekkel.

C++ alapok 7. rész – ciklusok