C++ Funkce s příklady programů
⚡ Chytré shrnutí
Funkce v C++ seskupují související příkazy do opakovaně použitelných pojmenovaných bloků, které přijímají vstup, zpracovávají ho a vracejí výstup. Programy kombinují vestavěné knihovní funkce a uživatelsky definované funkce, přičemž každá je deklarována, definována a volána, aby se zabránilo opakování kódu.

V čem je funkce C++?
Funkce v C++ odkazuje na skupinu příkazů, které převezmou vstup, zpracují jej a vrátí výstup. Myšlenkou za funkcí je kombinovat běžné úkoly, které se provádějí opakovaně. Pokud máte různé vstupy, nenapíšete znovu stejný kód. Jednoduše zavoláte funkci s jinou sadou dat nazývanou parametry.
Každý C++ program má alespoň jednu funkci, funkci main(). Svůj kód můžete rozdělit do různých funkcí. Toto rozdělení by mělo být takové, aby každá funkce vykonávala určitý úkol.
Existuje mnoho vestavěných funkcí C++ standardní knihovna. Tyto funkce můžete volat ve svém programu.
Proč používat funkce?
S používáním funkcí je spojeno mnoho výhod. Tyto zahrnují:
- Každá funkce dává související kód dohromady. To usnadňuje programátorům porozumět kódu.
- Funkce usnadňují programování tím, že eliminují opakování kódu.
- Funkce usnadňují opětovné použití kódu. Stejnou funkci můžete zavolat k provedení úkolu v různých částech programu nebo dokonce mimo program.
Vestavěné funkce
In C++, knihovní funkce jsou vestavěné C++ funkcí. Chcete-li tyto funkce použít, jednoduše je přímo vyvolejte/zavolejte. Funkce nemusíte psát sami.
Příklad 1:
#include <iostream> #include <cmath> using namespace std; int main() { double num, squareRoot; cout << "Enter number: "; cin >> num; squareRoot = sqrt(num); cout << "The square root of " << num << " is: " << squareRoot; return 0; }
Výstup:
Zde je snímek obrazovky kódu:
Code Vysvětlení:
- Chcete-li používat jeho funkce, zahrňte do našeho programu hlavičkový soubor iostream.
- Chcete-li používat její funkce, zahrňte knihovnu cmath. Chceme použít funkci sqrt() v něm definovanou.
- Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
- Zavolejte funkci main(). Programová logika by měla být přidána do těla této funkce.
- Deklarujte dvě dvojité proměnné, num a squareRoot.
- Vytiskněte nějaký text na konzoli. Text vyzve uživatele k zadání čísla.
- Čtení uživatelského vstupu z klávesnice. Vstupem se stane hodnota proměnné num.
- Zavolejte knihovní funkci sqrt(), která vypočítá druhou odmocninu čísla. Předali jsme funkci parametr num, což znamená, že vypočítá druhou odmocninu z num. Tato funkce je definována v knihovně cmath.
- Vytiskněte na konzole číslo zadané uživatelem, jeho druhou odmocninu a nějaký další text.
- Program musí po úspěšném dokončení vrátit hodnotu.
- Konec těla funkce main().
Uživatelsky definované funkce
C++ umožňuje programátorům definovat jejich vlastní funkce. Účelem funkce je seskupit související kód. Kód pak dostane jedinečný identifikátor, název funkce.
Funkci lze volat/vyvolat z jakékoli jiné části programu. Poté spustí kód definovaný v jeho těle.
Příklad 2:
#include <iostream> using namespace std; void sayHello() { cout << "Hello!"; } int main() { sayHello(); return 0; }
Výstup:
Zde je snímek obrazovky kódu:
Code Vysvětlení:
- Chcete-li používat jeho funkce, zahrňte do našeho programu hlavičkový soubor iostream.
- Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
- Vytvořte uživatelem definovanou funkci s názvem sayHello().
- Při volání funkce sayHello() vytiskněte na konzolu nějaký text.
- Konec těla funkce sayHello().
- Zavolejte funkci main(). Programová logika by měla být přidána do těla této funkce.
- Zavolejte/vyvolejte funkci s názvem sayHello().
- Program musí po úspěšném dokončení vrátit hodnotu.
- Konec těla funkce main().
Kompilátor musí znát funkci před jejím použitím.
Deklarace funkce/Prototyp
Pokud definujete uživatelem definovanou funkci po funkci main(), C++ kompilátor vrátí chybu. Důvodem je, že kompilátor nezná podrobnosti o uživatelsky definované funkci. Podrobnosti zahrnují jeho název, typy argumentů a jejich návratové typy.
In C++, deklarace/prototyp funkce deklaruje funkci bez těla. To poskytuje kompilátoru podrobnosti o uživatelsky definované funkci.
V deklaraci/prototypu zahrnujeme návratový typ, název funkce a typy argumentů. Názvy argumentů se nepřidávají. Přidání názvů argumentů však negeneruje žádnou chybu.
Definice funkce
Účelem deklarace funkce je sdělit C++ kompilátor o názvu funkce, návratovém typu a parametrech. Definice funkce říká C++ kompilátor o těle funkce.
Syntax
return_datatype function_name( parameters) {
function body
}
Z výše uvedeného vyplývá, že definice funkce má záhlaví a tělo funkce. Zde je vysvětlení parametrů:
- return_datatype – Některé funkce vracejí hodnotu. Tento parametr označuje datový typ návratové hodnoty. Některé funkce hodnotu nevrací. V takovém případě se hodnota tohoto parametru stane neplatnou.
- název_funkce- Toto je název funkce. Název funkce a parametry tvoří podpis funkce.
- Parametry – Toto je typ, pořadí a počet parametrů funkce. Některé funkce parametry nemají.
- tělo funkce – to jsou příkazy definující, co bude funkce dělat.
Volání funkce
Aby funkce provedla zadaný úkol a vrátila výstup, musí být volána. Když zavoláte funkci, provede příkazy přidané do jejího těla.
Funkce se volá svým jménem. Pokud funkce přijímá parametry, jejich hodnoty by měly být předány během volání. Pokud funkce nepřijímá žádné parametry, nepředávejte během volání žádnou hodnotu.
Předávání argumentů
In C++, argument/parametr jsou data předaná funkci během jejího volání. Hodnoty musí být inicializovány na příslušné proměnné.
Při volání funkce se musí počet argumentů shodovat. To znamená, že předávané hodnoty musí být rovny počtu parametrů. Hodnoty se také musí shodovat s parametry z hlediska typu. Pokud je první parametr celé číslo, musí být i předávaná hodnota celé číslo.
Parametrům funkce lze přiřadit výchozí hodnoty. Pokud během volání funkce nepředáte hodnotu parametru, použije se výchozí hodnota.
Příklad 3: Jak napsat a volat funkci
#include <iostream> using namespace std; int addFunc(int, int); int main() { int x, y, sum; cout << "Enter two numbers: "; cin >> x >> y; sum = addFunc(x, y); cout <<"The sum of "<<x<< " and " <<y<<" is: "<<sum; return 0; } int addFunc(int num1, int num2) { int addFunc; addFunc = num1 + num2; return addFunc; }
Výstup:
Zde je snímek obrazovky kódu:
Code Vysvětlení:
- Chcete-li používat jeho funkce, zahrňte do našeho programu hlavičkový soubor iostream.
- Zahrňte do našeho kódu jmenný prostor std, abyste mohli používat jeho třídy bez jeho volání.
- Deklarujte funkci s názvem addFunc(), která přebírá dva celočíselné parametry. Tím se vytvoří prototyp funkce.
- Zavolejte funkci main(). Programová logika by měla být přidána do těla této funkce.
- Deklarujte tři celočíselné proměnné x, y a součet.
- Vytiskněte nějaký text na konzoli. Text vyzve uživatele k zadání dvou čísel.
- Přečtěte si uživatelský vstup z klávesnice. Uživatel by měl zadat dvě čísla pro proměnné x a y oddělená mezerou.
- Zavolejte funkci addFunc() a předejte jí parametry x a y. Funkce bude pracovat s těmito parametry a přiřadí výstup proměnné sum.
- Vytiskněte hodnoty proměnných x, y a součtu na konzole vedle ostatního textu.
- Funkce musí po úspěšném dokončení vrátit hodnotu.
- Konec těla funkce main().
- Definice funkce. Definujeme funkci addFunc(). Uvedeme, co bude funkce dělat v jejím těle, v { }.
- Deklarování celočíselné proměnné s názvem addFunc.
- Sečtení hodnot parametrů num1 a num2 a přiřazení výsledku do proměnné addFunc.
- Funkce addFunc() by měla vrátit hodnotu proměnné addFunc.
- Konec těla funkce, tedy definice funkce.






