functions c with types examples
Dotazy a odpovědi na technickou podporu v pdf
Typy funkcí v C ++ spolu s jejich použitím.
V našich dřívějších výukových programech až dosud jsme viděli různé koncepty v C ++, jako jsou proměnné, třídy úložiště, operátory, pole, řetězce atd.
V tomto tutoriálu se posuneme vpřed a probereme koncept funkcí. Funkce se také nazývají metody, podprogramy nebo procedury.
=> Přečtěte si rozsáhlou sérii výukových kurzů C ++ zde.
Co se naučíte:
- Jak definujeme funkci?
- Typy funkcí v C ++
- Deklarace funkce
- Definice funkce
- Volání funkce
- Formální a skutečné parametry
- Návratové hodnoty
- Prázdné funkce
- Předávání parametrů funkcím
- Výchozí parametry
- Konstantní parametry
- Vložené funkce
- Používání struktur ve funkcích
- Závěr
- Doporučené čtení
Jak definujeme funkci?
Funkce je sada příkazů, které jsou sestaveny za účelem provedení konkrétního úkolu. Mohou to být příkazy provádějící některé opakované úkoly nebo příkazy provádějící některé speciální úkoly, jako je tisk atd.
Jedním z použití funkcí je zjednodušení kódu rozdělením na menší jednotky zvané funkce. Ještě další myšlenkou používání funkcí je, že nám to ušetří psaní stejného kódu znovu a znovu. Musíme jen napsat jednu funkci a potom ji volat podle potřeby, aniž bychom museli znovu a znovu psát stejnou sadu příkazů.
Typy funkcí v C ++
V C ++ máme dva typy funkcí, jak je znázorněno níže.
Integrované funkce
Integrované funkce se také nazývají funkce knihovny. Jedná se o funkce, které poskytuje C ++, a nemusíme je psát sami. Tyto funkce můžeme přímo použít v našem kódu.
Tyto funkce jsou umístěny v hlavičkových souborech C ++. Například ,, jsou záhlaví, která mají zabudované matematické funkce a řetězcové funkce.
Podívejme se na příklad použití vestavěných funkcí 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 : '< Výstup:
Zadejte vstupní řetězec: Nápověda k testování softwaru
Zadaný řetězec: Nápověda k testování softwaru!
Velikost provázku: 21
Zde používáme záhlaví a. Datové typy a další vstupní / výstupní funkce jsou definovány v knihovně. Řetězcové funkce používané jako getline, size jsou součástí záhlaví.
Uživatelem definované funkce
C ++ také umožňuje svým uživatelům definovat své vlastní funkce. Jedná se o uživatelem definované funkce. Můžeme definovat funkce kdekoli v programu a poté tyto funkce volat z kterékoli části kódu. Stejně jako proměnné by měly být deklarovány před použitím, funkce musí být deklarovány také před jejich voláním.
Pojďme se podrobně zabývat uživatelsky definovanými funkcemi.
Obecná syntaxe pro uživatelem definované funkce (nebo jednoduše funkce) je uvedena níže:
return_type functionName(param1,param2,….param3) { Function body; }
Jak je uvedeno výše, každá funkce má:
- Typ vrácení: Je to hodnota, kterou funkce po provedení konkrétního úkolu vrátí volající funkci.
- název funkce : Identifikátor používaný k pojmenování funkce.
- Seznam parametrů: Označeno param1, param2, ... paramn ve výše uvedené syntaxi. Jedná se o argumenty, které jsou předány funkci při volání funkce. Seznam parametrů je volitelný, tj. Můžeme mít funkce, které nemají žádné parametry.
- Tělo funkce: Skupina prohlášení, která provádějí konkrétní úkol.
Jak již bylo zmíněno, před použitím musíme funkci „deklarovat“.
Deklarace funkce
Deklarace funkce říká kompilátoru o návratovém typu funkce, počtu parametrů použitých funkcí a jejích datových typech. Deklarace je volitelná, včetně názvů parametrů ve funkci. Deklarace funkce se také nazývá jako prototyp funkce.
Níže uvádíme několik příkladů deklarace funkce pro vaši referenci.
int sum(int, int);
Výše uvedená deklarace má funkci „součet“, která bere jako parametry dvě celá čísla a vrací celočíselnou hodnotu.
void swap(int, int);
To znamená, že funkce swap přebírá dva parametry typu int a nevrací žádnou hodnotu, a proto je návratový typ neplatný.
void display();
Funkční displej nebere žádné parametry a nevrací žádný typ.
Definice funkce
Definice funkce obsahuje vše, co deklarace funkce obsahuje, a navíc obsahuje také tělo funkce uzavřené v závorkách ({}).
Kromě toho by měl mít také pojmenované parametry. Když je funkce vyvolána, řízení programu přejde do definice funkce, aby bylo možné provést funkční kód. Po dokončení provádění funkce přejde ovládací prvek zpět do bodu, kde byla funkce volána.
Pro výše uvedenou deklaraci funkce swap je definice uvedena níže:
void swap(int a, int b){ b = a + b; a = b - a; b = b - a; }
Všimněte si, že deklarace a definice funkce mohou jít společně. Pokud definujeme funkci před jejím odkazem, není třeba samostatné prohlášení.
Vezměme si kompletní programovací příklad k předvedení funkce.
#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 = '< Volání funkce Když máme v našem programu funkci, pak v závislosti na požadavku musíme tuto funkci zavolat nebo vyvolat. Pouze když je funkce volána nebo vyvolána, funkce provede svoji sadu příkazů, aby poskytla požadované výsledky.
Tuto funkci lze volat z libovolného místa v programu. Lze jej volat z hlavní funkce nebo z jakékoli jiné funkce, pokud program používá více než jednu funkci. Funkce, která volá jinou funkci, se nazývá „funkce volání“.
Ve výše uvedeném příkladu prohození čísel je funkce prohození volána v hlavní funkci. Proto se hlavní funkce stává volací funkcí.
Formální a skutečné parametry
Už jsme viděli, že můžeme mít parametry pro funkce. Parametry funkce jsou uvedeny v definici funkce jako seznam parametrů, který následuje za názvem funkce. Když je funkce volána, musíme předat skutečné hodnoty těchto parametrů, aby pomocí těchto skutečných hodnot mohla funkce plnit svůj úkol.
Volají se parametry, které jsou definovány v definici funkce Formální parametry . Jsou volány parametry ve volání funkce, které jsou skutečnými hodnotami Skutečné parametry.
Ve výše uvedeném příkladu výměny čísel jsme napsali komentáře k formálním a skutečným parametrům. Ve volající funkci, tj. Hlavní, se načte hodnota dvou celých čísel a předá se swapové funkci. Toto jsou skutečné parametry.
Definice těchto parametrů můžeme vidět v prvním řádku definice funkce. Toto jsou formální parametry.
Typ formálních a skutečných argumentů by se měl shodovat. Pořadí formálních a skutečných parametrů by se také mělo shodovat.
Návratové hodnoty
Jakmile funkce provede svůj zamýšlený úkol, měla by vrátit výsledek volající funkci. K tomu potřebujeme návratový typ funkce. Funkce může vrátit jednu hodnotu volající funkci. Návratový typ funkce je deklarován spolu s prototypem funkce.
Podívejme se na příklad přidání dvou čísel, abychom demonstrovali návratové typy.
#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 : '< Výstup:
Zadejte dvě přidávaná čísla: 11 11
Součet dvou čísel: 22
Ve výše uvedeném příkladu máme součet funkcí, který přebírá dva celočíselné parametry a vrací celočíselný typ. V hlavní funkci načteme ze vstupu konzoly dvě celá čísla a předáme je funkci součtu. Protože návratový typ je celé číslo, máme na LHS proměnnou výsledku a RHS je volání funkce.
Když je funkce spuštěna, výraz (a + b) vrácený součtem funkce je přiřazen výsledné proměnné. To ukazuje, jak se používá návratová hodnota funkce.
Prázdné funkce
Viděli jsme, že obecná syntaxe funkce vyžaduje, aby byl definován návratový typ. Ale pokud v případě, že máme takovou funkci, která nevrací žádnou hodnotu, v tom případě, co zadáme jako návratový typ? Odpověď je, že používáme bezcenný typ „void“ k označení, že funkce nevrací hodnotu.
V takovém případě se funkce nazývá „neplatná funkce“ a její prototyp bude podobný
void functionName (param1, param2,… .param 3);
char * na int c ++
Poznámka : Je dobrým zvykem zahrnout prohlášení „vrátit se“; na konci funkce void kvůli jasnosti.
Předávání parametrů funkcím
Koncept skutečných a formálních parametrů jsme již viděli. Víme také, že skutečné parametry předávají hodnoty funkci, která je přijímána parametry formátu. Tomu se říká předávání parametrů.
V C ++ máme určité způsoby předávání parametrů, jak je popsáno níže.
Projděte kolem hodnoty
V programu pro výměnu dvou celých čísel, o kterém jsme hovořili dříve, jsme viděli, že jsme právě přečetli celá čísla „a“ a „b“ v hlavní části a předali je funkci odkládání. Toto je technika předávání hodnoty.
Při technice předávání parametrů předávání hodnot se kopie hodnot skutečných parametrů předávají formálním parametrům. Z tohoto důvodu jsou skutečné a formální parametry uloženy na různých místech paměti. Změny formálních parametrů uvnitř funkce se tedy neodráží mimo funkci.
Můžeme tomu lépe porozumět, když znovu navštívíme zaměnění dvou čísel.
#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 = '< Projít odkazem Pass by reference je další technikou používanou v C ++ k předávání parametrů funkcím. V této technice místo předávání kopií skutečných parametrů předáváme odkazy na skutečné parametry.
Poznámka: Odkazy nejsou nic jiného než aliasy proměnných nebo jednoduše řečeno, je to jiný název, který je dán proměnné. Proměnná a její reference tedy sdílejí stejné místo v paměti. Reference se naučíme podrobně v našem dalším tutoriálu.
V technice pass by reference používáme tyto odkazy na skutečné parametry a ve výsledku se změny provedené ve formálních parametrech ve funkci projeví zpět na volající funkci.
Upravujeme naši swapovou funkci pro naše čtenáře, abychom lépe porozuměli konceptu.
#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 = '< Projděte ukazatelem V C ++ můžeme také předávat parametry do funkce pomocí proměnných ukazatele. Technika pass by pointer produkuje stejné výsledky jako metoda pass by reference. To znamená, že formální i skutečné parametry sdílejí stejná umístění paměti a změny provedené ve funkci se projeví ve volající funkci.
Jediný rozdíl, že v průchodu odkazem se zabýváme odkazy nebo aliasy parametrů, zatímco v technice průchodu ukazatelem používáme k předání parametrů proměnné ukazatele.
Proměnné ukazatele se liší podle odkazů, ve kterých ukazatele ukazatele ukazují na konkrétní proměnnou, a na rozdíl od odkazů můžeme proměnnou, na kterou ukazuje, změnit. Prozkoumáme podrobnosti ukazatele v našich dalších výukách.
Znovu představujeme prohození dvou celých čísel, abychom demonstrovali techniku 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 = '< Výchozí parametry V C ++ můžeme poskytnout výchozí hodnoty pro funkční parametry. V tomto případě, když vyvoláme funkci, neurčujeme parametry. Místo toho funkce přebírá výchozí parametry, které jsou k dispozici v prototypu.
Následující příklad ukazuje použití výchozích parametrů.
#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< Výstup:
Zadejte hodnoty pro a, bac: 10 4 6
Volání k mathoperaci s 1 arg: 15
Volání k mathoperaci s 2 arg: 20
Volání k mathoperaci s 3 arg: 6
Jak je ukázáno v příkladu kódu, máme funkci „mathoperation“, která přebírá tři parametry, z nichž jsme poskytli výchozí hodnoty pro dva parametry. Pak v hlavní funkci voláme tuto funkci třikrát s jiným seznamem argumentů.
První volání má pouze jeden argument. V tomto případě budou mít další dva argumenty výchozí hodnoty. Další volání má dva argumenty. V tomto případě bude mít třetí argument výchozí hodnotu. Třetí hovor má tři argumenty. V tomto případě, protože jsme poskytli všechny tři argumenty, budou výchozí hodnoty ignorovány.
Všimněte si, že i když poskytujeme výchozí parametry, vždy začínáme od parametru zcela vpravo. Také nemůžeme přeskočit parametr mezi nimi a poskytnout výchozí hodnotu pro další parametr.
Nyní pojďme k několika konceptům speciálních funkcí, které jsou důležité z pohledu programátora.
Konstantní parametry
Můžeme také předat konstantní parametry funkcím pomocí klíčového slova „const“. Když je parametr nebo reference const, nelze jej uvnitř funkce změnit.
Všimněte si, že nemůžeme předat parametr const neformálnímu parametru. Ale můžeme předat parametr const a non-const do formálního parametru const.
Podobně můžeme mít i const návratový typ. V tomto případě také nelze změnit návratový typ.
Podívejme se na příklad kódu, který používá odkazy 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 = '< Výstup:
Zadejte dvě čísla, která chcete vyměnit: 22 33
a = 2 b = 33
Výsledek přidání: 55
Ve výše uvedeném programu máme konstantní formální parametry. Všimněte si, že skutečné parametry jsou běžné nekonstantní proměnné, které jsme úspěšně předali. Protože formální parametry jsou const, nemůžeme je uvnitř funkce upravovat. Provedeme tedy operaci přidání a vrátíme hodnotu.
Pokud se pokusíme upravit hodnoty a nebo b uvnitř funkce, pak kompilátor vydá chybu.
Vložené funkce
Víme, že za účelem volání funkce interně zahrnuje kompilátor, který ukládá stav programu na zásobník před předáním ovládání funkci.
Když se funkce vrátí, kompilátor musí načíst stav programu zpět a pokračovat od místa, kde odešel. To představuje režii. Proto v C ++, kdykoli máme funkci skládající se z několika příkazů, existuje zařízení, které mu umožňuje rozšířit inline. To se provádí vložením funkce.
Inline funkce jsou tedy funkce, které se za běhu rozšiřují, což šetří úsilí o volání funkce a provedení úprav zásobníku. Ale i když vytvoříme funkci jako vloženou, kompilátor nezaručuje, že bude za běhu rozšířena. Jinými slovy, je zcela závislé na kompilátoru, aby funkci vložil nebo ne.
Některé kompilátory detekují menší funkce a rozšiřují je vložené, i když nejsou prohlášeny za vložené.
Následuje příklad vložené funkce.
inline int addition(const int &a,const int &b){ return (a+b); }
Jak je uvedeno výše, definici funkce předcházíme klíčovým slovem „inline“, aby byla funkce inline.
Používání struktur ve funkcích
Můžeme předávat strukturní proměnné jako parametry, aby fungovaly podobným způsobem, jako bychom předávali běžné proměnné jako parametry.
To je ukázáno v následujícím příkladu.
#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); }
Výstup:
Zadejte jméno: Vedang
Zadejte věk: 22
Zadejte plat: 45 000,00
Struktura PersonInfo:
Věk: 22
Název: Vedang
Plat: 45000

Jak je znázorněno ve výše uvedeném programu, předáme strukturu, která bude fungovat podobným způsobem jako jiné proměnné. Čteme hodnoty pro členy struktury ze standardního vstupu a poté předáme strukturu funkci, která zobrazuje strukturu.
jak spustit java projekt
Závěr
Toto bylo všechno o základech funkcí v C ++.
Prozkoumáme více o statických funkcích v C ++ v našich připravovaných tutoriálech.
=> Zkontrolujte kompletní C ++ ZDARMA tréninkovou sérii zde.
Doporučené čtení
- Funkce Pythonu
- Funkce data a času v C ++ s příklady
- Funkce Unix Shell Script s parametry a návratem
- Výukový program Python DateTime s příklady
- Důležité funkce LoadRunner používané ve skriptech VuGen s příklady
- Funkce řetězce Python
- Výukový program pro hlavní funkce Pythonu s praktickými příklady
- Funkce přátel v C ++