Funkcje stanowią podstawowy element programu w C++. Definicja funkcji ma następującą postać:
typ nazwa(lista_parametrów) {gdzie
lista_instrukcji
}
typ_1 nazwa_1, typ_2 nazwa_2, ...,typ_n nazwa_ni zawiera informację o typach i nazwach parametrów (może być pusta),
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.
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.
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();Uwagi:
n=qqq();
y=21.3*x(a, 'W', z/1.5);
int kwadrat(int n) {return n*n;}jest poprawny, natomiast
double kwadrat(double x) {return x*x;}
int kwadrat(int n) {return n*n;}jest błędny - nie wiadomo która funkcja kwadrat miałaby zostać wywołana.
double kwadrat(int n) {
double x=n;
return x*x;
}
int a;jest poprawna, a
int& b=a;
int& b;nie jest.
Przykład.
int a=2;Podstawowym zastosowaniem referencji jest
int& b=a; // a==2, b==2
a=a+1; // a==3, b==3
b=b-2; // a==1, b==1
Przykład.
int zwieksz(int& n) {Po uruchomieniu programu na ekranie pojawi się:
n=n+1;
return n;
}
int main() {
int a;
int b;
a=4;
b=zwieksz(a);
cout << "a=" << a << ", b=" << b << endl;
}
a=5, b=5Gdyby parametr funkcji zwieksz nie był referencją (tj. gdyby pominąć znak & w nagłówku), wynik byłby następujący:
a=4, b=5
Kiedy używać referencji?