Implicitní parametry



Napište funkci, která vrátí maximální hodnotu z jednoho, dvou, nebo tří parametrů. (Funkce musí být jediná, společná pro všechna volání -> použijte mechanizmusm implicitních parametrů.)



Napište tedy jedinou funkci max se třemi parametry tak aby bylo možné ji volat s jedním, dvěma nebo třemi parametry (řešte pomocí implicitních parametrů). Pokud nebudou tyto parametry zadány bude jejich hodnota nastavena na minimální hodnotu daného typu (prostudujte si knihovny - float.h, limits.h).

Zkuste použít ternární operátor

Zvolte vhodný typ pro realizaci předávaných parametrů (v knihovnách float.h, limits.h ověřte, kdy dojde ke ztrátě přesnosti implicitních konverzí).

Zkuste volat funkci s jedním, dvěma a třemi parametry.

(int i;
double d;
float f;
max(i,i,i);
max(i,i);
max(i);
max(d,d,d);
max(d,d);
max(d);
max(i,d);
max(f,f);
max(i,f); - proč a jak fungují?)



Přidejte napsanou funkci k funkcím max z přetěžování a vyzkoušejte všechna nadefinovaná volání z obou případů. Co se děje a proč?



(V případě, že vám zbyde čas, zkuste realizovat max pomocí výpustky (= elipses = “...“) – první parametr bude značit počet double hodnot, které budou následovat. Zhodnoťte výhody a nevýhody jednotlivých řešení – proměnný počet a typ parametrů, implicitní parametry, výpustka, realizace pomocí maker)





Poslední změna 2008-07-29