Kdy použít vložené funkce
Vložené funkce je nejvhodnější používat pro malé funkce, například přístup k soukromým datovým členům.Hlavním účelem těchto "přístupových" funkcí s jedním nebo dvěma řádky je vrátit stavové informace o objektech. Krátké funkce jsou citlivé na režii spojenou s voláním funkcí.Delší funkce stráví sekvencemi volání a vrácení poměrově méně času a jejich vkládání přináší menší užitek.
Příklad
Třídu Point zavedenou v tématu Výsledky volání funkcí lze optimalizovat takto:
// when_to_use_inline_functions.cpp
class Point
{
public:
// Define "accessor" functions as
// reference types.
unsigned& x();
unsigned& y();
private:
unsigned _x;
unsigned _y;
};
inline unsigned& Point::x()
{
return _x;
}
inline unsigned& Point::y()
{
return _y;
}
int main()
{
}
Za předpokladu, že manipulace se souřadnicemi je v klientu takové třídy poměrně běžnou operací, zadání daných dvou přístupových funkcí (x a y v předchozím příkladu) s klíčovým slovem inline obvykle šetří režii při těchto činnostech:
Volání funkcí (včetně předávání parametrů a ukládání adresy objektu do zásobníku)
Zachování rámce zásobníku volajícího
Nové nastavení rámce zásobníku
Komunikace návratové hodnoty
Obnovení původního rámce zásobníku
Výsledek