Przesyłanie argumentów przez referencję

O co chodzi z tą referencją, i co to takiego jest ?

Patrząc na ekran, po kompilacji programu, zauwazamy ze funkcja, która chciała wyzerować dwa obiekty a i b wysłane do niej jako argumeny, zaskoczyła nas.

Oczywiście obiekt a jest nietknięty. To znamy, jednak obiekt b ma wartość 0, dlaczego?

Kilka słów o funkcji zer:

Widzimy,że to funkcja , która przyjmuje dwa argumenty, pierwszy z nich jest przesyłany – tak jak poprzednio – przez wartość, drugi natomiast jest przesyłany przez referencję. Zauważ znak &.

W main mamy dwie zmienne, które wysyłamy do funkcji zer. Inaczej mówiąc: wywołujemy funkcje zer z parametrami aktualnymi a,b.

Wewnątrz funkcji zer, na moment przed egzekucją, wypisujemy jeszcze wartość dwóch parametrów formalnych wart,ref.
Tu następuje jakaś operacja zmieniająca wartość zmiennych wart i ref.W naszym przypadku wpisanie im zer.

Na dowód, że tak się stało w istocie – wypisujemy ich wartość na ekran.

Kończymy pracę funkcji, będąc już w main wypisujemy na ekranie wartości zmiennych a i b. I tu cała niespodzianka.
a pozostało bez zmian, a b?

pozostało zmienione właśnie ze względu na referencję.
– dwie nazwy ref, b określały ten sam obiekt. W tym cała filozofia referencji w języku C++

#include
using std::cin;
using std::cout;
using std::endl;


void zer(int wart, int &ref) {
	cout<<"\tW funkcji zer przed zerowaniem\n";
	cout<<"\twart="<
	

Dodaj komentarz