Funkcje

Funkcje stanowi� podstawowy element programu w C++. Ka�da funkcja zawiera fragment programu, kt�ry mo�na wykonywa� niezale�nie od pozosta�ej cz�ci programu. Ka�dy program musi zawiera� dok�adnie jedn� funkcj� o nazwie main, od kt�rej rozpoczyna si� wykonanie programu. Dzia�anie funkcji mo�e zale�e� od podanych parametr�w, funkcja mo�e te� zwr�ci� wynik, kt�ry b�dzie dost�pny w miejscu wywo�ania.

Definicja funkcji

Definicja funkcji ma nast�puj�c� posta�:
typ nazwa(lista_parametr�w) {
   lista_instrukcji
}
gdzie

Deklaracja funkcji

Dozwolone s� r�wnie� deklaracje funkcji:

typ nazwa(lista_parametr�w);
Zawieraj� one jedynie informacj�, �e nazwa jest nazw� funkcji (o zadanym typie i li�cie parametr�w). Definicja funkcji powinna by� podana p�niej. Przed pierwszym u�yciem funkcji musi si� znajdowa� jej deklaracja b�d� definicja.

Przyk�ady:

void a();
funkcja o nazwie a, kt�ra nie ma parametr�w i nie zwraca �adnej warto�ci.
int qqq();
funkcja o nazwie qqq bez parametr�w, zwracaj�ca warto�� typu int.
double x(int a, char c, double tt);
funkcja o nazwie x, zwracaj�ca warto�� typu double. Wymaga trzech parametr�w: pierwszego typu int, drugiego typu char, a trzeciego typu double.

Wywo�anie funkcji

Ka�d� funkcj� mo�na wywo�a� przez

nazwa_funkcji(warto��_1, warto��_2, ...,warto��_n);
Wywo�anie funkcji ma nast�puj�cy efekt:

Przyk�ady wywo�a� funkcji:

a();
n=qqq();
y=21.3*x(a, 'W', z/1.5);
Uwagi:

Przekazanie parametru przez zmienn�

Je�li T jest typem, to T& jest typem referencyjnym wskazuj�cym na T. Je�li parametr funkcji jest typu referencyjnego, to w funkcji nie tworzy si� kopia zmiennej - rachunki wykonywane s� na zmiennej podanej jako argument.

Przyk�ad.

int zwieksz(int& n) {
   n=n+1;
   return n;
}

int main() {
   int a;
   int b;
   a=4;
   b=zwieksz(a);
   cout << "a=" << a << ", b=" << b << endl;
}
Po uruchomieniu programu na ekranie pojawi si�:
a=5, b=5
Gdyby parametr funkcji zwieksz nie by� referencj� (tj. gdyby pomin�� znak & w nag��wku), wynik by�by nast�puj�cy:
a=4, b=5

Uwaga: Je�li parametr funkcji jest typu referencyjnego, to w wywo�aniu musimy poda� zmienn�, a nie warto��. Np. w powy�szym przyk�adzie wywo�anie zwieksz(3); jest niepoprawne.

Kiedy u�ywa� referencji?

OSZAR »