Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Funkcje w C++ cz. I

Funkcja w programowaniu to pewien blok kodu, który wykonuje określone zadanie i zwraca bądź też nie jakąś konkretną daną określonego wcześniej typu (np. int, double czy string). Dzięki funkcją program możemy podzielić na kilka mniejszych bloków kodu, które następnie łatwiej jest rozwijać, a co najważniejsze dany fragment możemy używać z różnymi danymi dowolną ilość razy nie przepisując go ponownie.

Należy tutaj zwrócić uwagę iż funkcją jest main, w którym w poprzednich artykułach wpisywaliśmy cały kod naszej aplikacji. Teraz przejdziemy trochę dalej. Przyjrzyjmy się więc przykładowej funkcji w C++, która może wyglądać tak:

typDanejKtoraChcemyZwrocic nazwaFunkcji(typArgumentu1 nazwaArgumentu1)
{
     jakisKod
}

Natomiast przykładowy program korzystający z funkcji obliczającej pole kwadratu tak:

#include <iostream>

using namespace std;

int poleKwadratu(int a) //funkcja poleKwadratu zwracająca wartość typu int
{
     return a * a; //zwróć a * a
     
     // return a, b; to jest błędem ponieważ możemy zwracać tylko jedną zmienną, jest kilka sztuczek, które obchodzą to ograniczenie, ale o nich będę pisał w II części tego artykułu
}

int main() //funkcja main zwracająca wartość typu int
{
     int pole = poleKwadratu(5); //oblicza pole kawadratu o boku 5
     
     cout << pole; //wypisze 25
 
     return 0; //zwracamy 0 czyli wartość typu int
}

Oczywiście możemy napisać również funkcję, która nie zwraca żadnej danej na przykład:

#include <iostream>

using namespace std;

void pole(int a, int b) //funkcja pole która ma typ void czyli nie zwraca nic
{
    b = a * a;
}

int main()
{
    pole(5, 0);

    // cout << b; to jest błędem, ponieważ zmienna b nie jest zadeklarowana

    return 0;
}

Przy funkcjach należy zwrócić jeszcze jedną uwagę na argumenty. Mianowicie kiedy podajemy je do funkcji to tak naprawdę kompilator robi sobie kopię wskazanych przez nas zmiennych oblicza co ma obliczyć i zwraca bądź też nie jakąś daną. Jeżeli funkcja zmodyfikuje liczbę (na przykład pomnoży 5 przez 2) w dowolnej zmiennej to ta zmodyfikowana liczba będzie dostępna tylko do momentu kiedy dana funkcja nie zakończy działania. Zróbmy mały eksperyment:

#include <iostream>

using namespace std;

int c = 4;

int pole(int a, int b)
{
    c = 2 * b; //do c przypisz 2 * b czyli 2 * 4 = 8
    return a * a;
}

int main()
{

    pole(5, 4);

    cout << c; //zamiast 8 mamy dalej 4

    return 0;
}

Oczywiście to również można obejść stosując tak zwane wskaźniki, ale o tym będę pisał w II części tego artykułu.

Fot: marissa, Flickr | CC.

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , ,

Dodaj komentarz

Odpowiedz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Pin It on Pinterest