6. Funkcje

6.1. Funkcje zwracające wartość

Funkcje zwracające wartość w C++ to funkcje, które po zakończeniu swojego działania zwracają wynik, który można wykorzystać w innych częściach programu. Wartość zwracana może być dowolnego typu, od prostych typów, takich jak int, double czy char, po bardziej złożone, jak wskaźniki, referencje, obiekty klas, struktury.

Oto prosty przykład funkcji, która zwraca sumę dwóch liczb całkowitych:


int dodaj(int a, int b) {
    return a + b;
}

int main() {
    int wynik = dodaj(5, 10); // Funkcja dodaj zwraca wartość, którą przypisujemy do zmiennej wynik
    std::cout << "Wynik: " << wynik << std::endl; // Wynik: 15
    return 0;
}
W powyższym przykładzie funkcja dodaj przyjmuje dwa argumenty typu int, dodaje je, a następnie zwraca wynik, który można przypisać do zmiennej wynik w funkcji main. W przedstawionym przykładzie możliwe jest obliczenie wyniku w operacji return. Możemy także wcześniej wyznaczyć wartość sumy oraz zapamiętać jej wynik w innej zmiennej i następnie zwrócić wartość tej zmiennej. Ważne jest aby typ zwracany był zgodny z nagłowkiem funkcji. W naszym przykładzie wartość zwracana musi być typu int. Możemy zwracać tylko jedną wartość w postaci typu prostego. Nie ma możliwości zwrócenia dwóch wartości w postaci typów prostych za pomocą operacji return. Możemy oczywiści zwrócić więcej wartości ale w typach złożonych np. struktury. Wartości są wtedy ukryte w typie złożonym. Funkcje mogą zwracać również obiekty klas lub struktury, co jest przydatne, gdy potrzebujemy przekazać złożone dane.
struct Punkt {
    int x, y;
};

Punkt stworzPunkt(int a, int b) {
    Punkt p;
    p.x = a;
    p.y = b;
    return p;
}

int main() {
    Punkt p = stworzPunkt(5, 10);
    std::cout << "Punkt: (" << p.x << ", " << p.y << ")" << std::endl;
    return 0;
}
W powyższym przykładzie funkcja stworzPunkt zwraca strukturę Punkt, która jest przypisywana do zmiennej p w funkcji main.