Lekcja 33
Funkcje w języku C++ - podstawowe informacje o funkcjach
Wprowadzenie
Do tej pory udało Ci się poznać już fragment języka C++. Umiesz przeprowadzać różne operacje, pobierać i wypisywać dane. Czas jednak poznać mechanizm, który ułatwia i tak naprawdę umożliwia programowanie.
Wyobraź sobie, że musisz napisać program, który będzie liczyć kilkadziesiąt tysięcy linii. Przerażające, prawda? Rzecz w tym, że mając tak duży program, na pewno wiele razy popełnisz bardziej lub mniej widoczne błędy, z których na pewno niektóre będą bardzo ciężkie do wykrycia.
Załóżmy, że udało Ci się program napisać, testowany był już wiele razy. Postanawiasz jednak przetestować go po raz ostatni przed zatwierdzeniem. I nagle okazuje się, że dla wprowadzonych danych, program nie zadziałał poprawnie - zawiesił się lub wypisał niepoprawne, absurdalne dane.
I co teraz zrobisz? Gdzie będziesz szukać błędu? Jak znaleźć błąd w programie, który liczy kilkadziesiąt tysięcy linii? Rzeczywiście, gdyby programy były pisane w ten sposób jak robiliśmy to do tej pory, to znalezienie takiego błędu byłoby niemożliwe albo graniczyłoby z cudem.
Na szczęście, poznamy teraz mechanizm, który ułatwia organizację kodu programu. Cały kod będziemy mogli dzielić na mniejsze części, które będzie można zdecydowanie łatwiej testować i łatwiej zrozumieć, co się w nich dzieje.
Tym tajemniczym mechanizmem będą funkcje, o których wspominałem już w lekcji 2, w której przedstawiłem ogólną budowę programu w C++.
Na omówienie funkcji poświęcę kilka najbliższych lekcji. Wiedz, że w najbliższych lekcjach, przy okazji omawiania funkcji powróci wiele zagadnień i mechanizmów omówionych w poprzednich lekcjach kursu. Jeśli zatem pojawią się sformułowania, których nie będziesz rozumieć, radzę Ci od razu wrócić do poprzednich lekcji, bowiem jeśli nie będziesz rozumieć tych zagadnień, tym bardziej nie uda Ci się zrozumieć jak działają funkcje.
Funkcje - budowa
Przyjrzymy się funkcji, której używamy począwszy od naszego pierwszego programu, czyli specjalnej funkcji - funkcji main. Funkcja ta, jak dobrze wiesz, wygląda następująco:
int main()
{
// instrukcje
return 0;
}
Funkcja ta jest pierwszą funkcją uruchamianą podczas działania programu. Tak będzie zawsze, nawet wówczas, gdy utworzymy kilka innych funkcji.
Patrząc na budowę funkcji main moglibyśmy stwierdzić, że ogólna budowa funkcji jest następująca:
typ nazwafunkcji()
{
// instrukcje
return wartoscTypuTyp;
}
I rzeczywiście, takie wnioski byłyby zupełnie poprawne, z tym tylko, że na szczęście funkcje potrafią nieco więcej. My po prostu z tych większych możliwości funkcji, w funkcji main nie korzystaliśmy.