Zobrazit stránkuStarší verzeZpětné odkazyNahoru Tato stránka je pouze pro čtení. Můžete si pouze prohlédnout zdrojový kód, ale ne ho měnit. Zeptejte se správce, pokud si myslíte, že něco není v pořádku. ====== Přetěžování funkcí (function overloading) ====== Přetížené funkce (overloaded functions) jsou takové, které nesou stejný název, ale liší se formálními parametry. Kompilátor pak během kompilace rozhodne, která verze přetížené funkce bude volána na základě skutečných parametrů. ===== Příklady přetížených funkcí ===== Uvedeny jsou pouze hlavičky funkcí bez jejich implementace. <code c> // Properly overloaded functions void foo(int a, int b); void foo(double a, double b); void foo(int a); int foo(); // NOT properly overloaded functions int bar(int a); double bar(int a); </code> Ukázka včetně implementace <code c> int soucet(int l, int p) { return l + p; } double soucet(double l, double p) { return l + p; } int main() { double v1 = soucet(5.5, 4.0); int v2 = soucet(-3, 12); return 0; } </code> ===== Úlohy k procvičení ===== * Délka 2D a 3D vektoru * Vzdálenost dvou bodů v rovině a prostoru ==== Zdroje ==== * [[https://www.w3schools.com/cpp/cpp_function_overloading.asp|C++ Function Overloading]] * [[https://en.cppreference.com/w/cpp/language/overload_resolution|Overload resolution]] * [[https://www.cplusplus.com/doc/tutorial/functions2/|Overloads and templates]] ccpp/function-overloading.txt Poslední úprava: 2022/05/23 08:54autor: bures