====== 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. // 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); Ukázka včetně implementace 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; } ===== Ú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]]