Architektura C++ s důrazem na vývoj .NET prostředí 11.díl Funkční prototypy

Napsal O webu (») 11. 7. 2008 v kategorii Programování, přečteno: 1390×

Funkční prototypy

Funkční prototypy v C++ mohou mít nastaveny implicitní hodnoty některých parametrů. Pokud se při volání dané funkce odpovídající argument vynechá, bude za něj dosazena implicitní hodnota.

int Funkce(float f=6.1, int i =10);
//......
Funkce(3.14, 25);
// oba implicitní parametry budou přepsány
Funkce(2.5); // stejné jako volání
Funkce(2.5,10);
Funkce( ); // stejné jako volání
Funkce(6.1,10);


Pozor! Vynechá-li se první parametr, musí se vynechat i všechny následující.

Programovací jazyk C++ zavádí nové klíčové slovo inline, které způsobí zkopírování funkce na každé místo v kódu, kde je daná funkce volána. Funkce se bude chovat podobně jako by byla makrem. Na rozdíl od maker však umožňuje typovou kontrolu.

Reference

Jazyk C++ zavádí tzv. reference, které představují zvláštní druh proměnné. Na reference se můžeme dívat jako na jiná jména existujících proměnných. Deklarují se podobně jako ukazatele, jen místo znaku * vkládáme znak &. Jakmile však referenci deklarujeme, bude již stále ukazovat na tutéž proměnnou. V C++ rovněž nemůžeme deklarovat ukazatele na reference a pole referencí. Nelze také deklarovat reference na typ void (void&). Reference se nejčastěji používají při volání funkcí s parametry předávanými odkazem.

int prom;
int &ref_prom = prom; //reference
int *uk_prom; //ukazatel
ref_prom = 20; //je to samé jako: prom=20;
uk_prom = &ref_prom; //je to samé jako: uk_prom=&prom;


Předávání parametrů funkcí

V jazyce C jsou dvě možnosti, jak předávat parametry funkcím:
1. Volání hodnotou - předává se samotná proměnná a funkce si vytváří vlastní lokální kopii na zásobníku. Takový způsob není vhodný pro svou časovou a paměťovou náročnost u parametrů s větším datovým typem.

2. Jazyk C neumí předávat parametry odkazem, ale umožňuje předání adresy na skutečný parametr, které je pro větší datové struktury výhodnější než první způsob.

V jazyce C++, kromě výše uvedených variant, již existuje možnost předávání parametrů odkazem - raději funkce s parametry
volanými referencí.

Příklad:
void swap(int &a, int &b)
{
int pom;
pom=a;
a=b;
b=pom;
}
19
void main(void)
{
int X=10, Y=20;
swap(X, Y); // vymění se hodnoty proměnných X a Y
cout << "X je: " << X <<" Y je: " << Y << endl ;
}

Autor: Filip Koval
Štítky: C++/.NET
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel dvanáct a deset