• Kurs C++ - strona główna
  • Kurs C++ - kontakt z autorem
  • Kurs C++ - mapa witryny
  • Kurs C++ - prawa autorskie
  • Kurs C++ - Kanał RSS
Informatyka krok po kroku
Użytkownik niezalogowany

Witaj nieznajomy

Reklamy
Randki

Lekcja 34

Funkcje w języku C++ - zasięg funkcji i argumenty funkcji

utworzono: 2008-04-13 zmodyfikowano: 2008-04-13 Autor: mgr inż. Marcin Nabiałek

Wprowadzenie

W poprzedniej lekcji przedstawiłem Ci zagadnienie funkcji i zaznaczyłem, że funkcje są bardzo ważnym elementem języka C++, o czym już wkrótce się przekonasz. Tak naprawdę gdyby nie funkcje, pisanie dużych programów byłoby prawie niemożliwe.

W tej lekcji poznasz metody przekazywania argumentów do funkcji i zobaczysz na własne oczy, że argumenty do funkcji mogą być przekazywane na różne sposoby, co z kolei ma duży wpływ na możliwość zmiany ich wartości. Od razu warto zaznaczyć, że jeśli nie pamiętasz dokładnie jak działa referencja i jak działają wskaźniki, lepiej wróć do tych lekcji - tutaj i w następnych lekcjach będą one wykorzystywane niemal cały czas. Dowiesz się tutaj także o zasięgu funkcji, przesłanianiu zmiennych i korzystaniu ze zmiennych globalnych przez funkcje.

Argumenty funkcji - nazwy argumentów

Jak już dobrze wiesz, funkcje mogą przyjmować argumenty lub nie. W poprzedniej lekcji przedstawiłem Ci różne funkcje - zarówno te, które przyjmowały argumenty, jak i takie, które argumentów nie przyjmowały.

Lista argumentów funkcji składa się z nazwy typu oraz nazwy argumentu funkcji. Powstaje pytanie - jak powinny być nazywane argumenty - dowolnie, czy może tak jak nazwy zmiennych, które zostały do funkcji przekazane?

Okazuje się, że nazwy argumentów funkcji mogą nazywać się dowolnie pod warunkiem, że w danym zasięgu nazwy argumentów nie będą się powtarzać.

W poniższym programie zostały zadeklarowane 2 funkcje, o nazwach funkcja1 i funkcja2. Jak możesz zauważyć, obie funkcje wywoływane są z argumentami liczba1 i liczba2. Jednak w deklaracji funkcji argumenty te są nazwane różnie. W funkcji funkcja1 argumenty te są nazwane inaczej niż nazwy argumentów wywołania funkcji w funkcji main. Natomiast w funkcji funkcja2 argumenty te są nazwane dokładnie tak samo jak nazwy argumentów wywołania funkcji w funkcji main. Jak widać, w obu przypadkach funkcje działają poprawnie, co oznacza że w deklaracji funkcji argumenty mogą być nazwane albo tak samo jak nazwy argumentów podczas wywołania funkcji lub też zupełnie inaczej.

#include <iostream>

using namespace std;

void funkcja1(int, int);
double funkcja2(int, int);



int main()
{
  int liczba1=5,liczba2=8;
   
  funkcja1(liczba1,liczba2);
  cout <<"Suma liczb to "<<funkcja2(liczba1,liczba2);


  cout <<endl<<"Nacisnij ENTER aby zakonczyc"<<endl;
  getchar();
  return 0;  
}

void funkcja1(int a, int b)
{
 cout <<a<<' '<<b<<endl;
}

double funkcja2(int liczba1, int liczba2)
{
 return liczba1+liczba2;    
}
program nr 34.1

dodajdo

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | > | |>

Użytkowanie Serwisu oznacza zgodę na wykorzystywanie plików cookie. Szczegółowe informacje