Funkcje w C++

1. Co to jest funkcja?

Funkcja to wydzielony fragment programu, który wykonuje określone zadanie. Pozwala podzielić program na mniejsze części, co ułatwia jego tworzenie, testowanie i czytanie.

Funkcje umożliwiają:

  • unikanie powtarzania tego samego kodu,
  • zwiększenie przejrzystości programu,
  • łatwiejsze utrzymanie i rozwijanie projektu.

2. Budowa funkcji

Ogólna postać funkcji w C++:

  • typ_zwracany – typ danych zwracanych przez funkcję (int, double, void itp.),
  • nazwa_funkcji – dowolna, zgodna z zasadami nazewnictwa w C++,
  • lista_parametrów – dane wejściowe przekazywane do funkcji (może być pusta),
  • ciało funkcji – zestaw instrukcji, które mają być wykonane po jej wywołaniu.

3. Deklaracja (prototyp) funkcji

Deklaracja informuje kompilator o istnieniu funkcji, jej typie zwracanym oraz parametrach, ale nie zawiera ciała. Deklarację można umieścić nad funkcją main() lub w osobnym pliku nagłówkowym (.h).

Przykład:


4. Definicja funkcji

Definicja to pełna postać funkcji, która zawiera jej ciało – czyli instrukcje do wykonania.

Przykład:


5. Wywoływanie funkcji

Aby skorzystać z funkcji, należy wywołać ją po nazwie, przekazując odpowiednie argumenty.

Przykład:


6. Parametry funkcji

Funkcje mogą przyjmować parametry, czyli dane wejściowe. Sposób przekazywania parametrów wpływa na to, czy funkcja może zmienić oryginalne zmienne.

a) Przekazywanie przez wartość

Wartości argumentów są kopiowane do zmiennych funkcji. Zmiany w funkcji nie wpływają na oryginalne dane.

b) Przekazywanie przez referencję

Funkcja operuje na oryginalnych zmiennych, nie na ich kopiach. Zmiana wartości parametru wewnątrz funkcji zmienia wartość zmiennej w main().

c) Przekazywanie przez wskaźnik

Do funkcji przekazywany jest adres zmiennej. Pozwala to również modyfikować jej wartość.

d) Parametry domyślne

Parametry mogą mieć przypisane wartości domyślne, używane, gdy argument nie zostanie podany.


7. Funkcje typu void

Funkcje, które nie zwracają żadnej wartości, mają typ void.


8. Funkcje w wielu plikach

W większych projektach funkcje dzieli się na różne pliki dla lepszej organizacji kodu:

  • funkcje.h – zawiera deklaracje (prototypy),
  • funkcje.cpp – zawiera definicje,
  • main.cpp – korzysta z funkcji.

Przykład (uproszczony):

funkcje.h

funkcje.cpp

main.cpp


9. Różnica między funkcją a metodą

Cecha Funkcja Metoda
Definicja Niezależny fragment kodu Funkcja zdefiniowana wewnątrz klasy
Sposób wywołania Wywoływana samodzielnie Wywoływana przez obiekt klasy
Dostęp do danych Nie ma bezpośredniego dostępu do pól klasy Ma dostęp do pól klasy przez wskaźnik this
Przykład int dodaj(int a, int b) int Klasa::dodaj(int a, int b)

Przykład:


10. Podsumowanie

Element Opis Przykład
Deklaracja Informuje kompilator o istnieniu funkcji int suma(int, int);
Definicja Zawiera ciało funkcji int suma(int a, int b){ return a+b; }
Wywołanie Użycie funkcji suma(2,3);
Parametry Dane wejściowe int suma(int a, int b)
Zwracanie wartości Wynik funkcji return a + b;