====== 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]]