Funkcje są podstawowym elementem programów (nie tylko w C/C++). Więcej o nich powiemy w rozdziale im poświęconym . Tu podamy tylko bardzo skrótowe wprowadzenie, by móc ich używać w dalszych przykładach.
Funkcje pełnią w programach rolę podobną do funkcji matematycznych. Definicja funkcji, jak w matematyce, jest rodzajem przepisu opisującego, jak na podstawie danych wejściowych obliczyć pewną wartość. Sama definicja nie powoduje żadnych obliczeń: po zdefiniowaniu można jednak funkcji użyć, zwykle wielokrotnie, dla różnych konkretnych wartości danych wejściowych (argumentów) — dla każdych takich konkretnych danych zostanie wtedy zastosowany przepis podany w definicji i obliczona wartość wyniku. Na przykład definicja funkcji
czyli w skrócie oznacza, że za każdym razem gdy użyjemy tej funkcji, będziemy musieli podać trzy liczby rzeczywiste jako argumenty, a funkcja zwróci wynik równy iloczynowi pierwszej i trzeciej z tych liczb zwiększonemu o drugą z nich. Zauważmy, że gdy tej funkcji używamy (wywołujemy ją), to piszemy na przykład f (3, 5, w) — taki zapis oznacza zastosuj przepis podstawiając wszędzie 3 za a, 5 za b, a wartość symbolu w za x. Same nazwy a, b i x w wywołaniu funkcji nie pojawiają się. [To jest cecha C/C++; są języki, w których istnieje możliwość użycia nazw parametrów formalnych funkcji — jest to na przykład bardzo użyteczne w językach takich jak Python, Ada czy Fortran 90/95].
Podobnie jest w programowaniu. Rozważmy następujący program:
1. #include <iostream> 2. using namespace std; 3. 4. double linear(double a, double b, double x) { ➊ 5. return a*x + b; 6. } 7. 8. int main() { 9. double c = 2, z = 3; 10. double result = linear(c,5,z); ➋ 11. cout << "Result = " << result << endl; 12. }
Definicja funkcji linear zaczynająca się w linii ➊ mówi tyle:
T.R. Werner, 21 lutego 2016; 20:17