C++: Referencje
Referencja w C++ jest to specjalny typ zmiennej, który w swoim działaniu przypomina wskaźniki. Główna różnica polega na tym, że do referencji można przypisać adres tylko raz, a jej dalsze używanie niczym się nie różni od używania zwykłej zmiennej. Operacje, które wykonasz na zmiennej referencyjnej, zostaną odzwierciedlone na zmiennej zwykłej, z której pobrano adres. Można by pokusić się o stwierdzenie, że referencja jest inną nazwą danej zmiennej.
Referencje są deklarowane za pomocą znaku & bezpośrednio przed nazwą zmiennej. Na przykład:
int x = 10;
int& ref = x;
W tym przykładzie zmienna x
ma typ int
. Zmienna ref
jest referencją do zmiennej x
. Typ zmiennej ref
jest określony przez operator &, który oznacza "referencja do".
Referencje mogą być używane do:
- Przekazywania argumentów funkcji przez referencję. Pozwala to uniknąć kopiowania dużych obiektów w czasie wywoływania funkcji.
- Zwracania wartości z funkcji przez referencję. Pozwala to uniknąć kopiowania dużych obiektów w czasie zwracania wartości z funkcji.
- Dostępu do pól obiektu.
Przykład wykorzystania referencji
#include <iostream>
int main() {
int zmienna = 10;
int &ref = zmienna;
ref = 20;
std::cout << "Wartość zmiennej: " << zmienna << std::endl;
return 0;
}
Analiza Kodu:
int zmienna = 10;
tworzy zmienną o wartości 10.int &ref = zmienna;
inicjalizuje referencjęref
, która wskazuje na zmiennązmienna
.ref = 20;
zmienia wartość zmiennejzmienna
za pośrednictwem referencjiref
.std::cout << "Wartość zmiennej: " << zmienna << std::endl;
wypisuje zmienioną wartość zmiennejzmienna
, czyli 20.
Przekazywanie referencji do funkcji
Referencje są często wykorzystywane do przekazywania zmiennych do funkcji w taki sposób, aby funkcja mogła modyfikować ich wartość bez używania wskaźników.
#include <iostream>
void zmienWartosc(int &ref) {
ref = 30;
}
int main() {
int zmienna = 10;
zmienWartosc(zmienna);
std::cout << "Nowa wartość zmiennej: " << zmienna << std::endl;
return 0;
}
Analiza Kodu:
-
#include <iostream>
:- Ta linia kodu włącza bibliotekę standardową I/O w C++, która jest potrzebna do obsługi wejścia i wyjścia, w tym używania obiektów
std::cout
do wypisywania danych na ekran.
- Ta linia kodu włącza bibliotekę standardową I/O w C++, która jest potrzebna do obsługi wejścia i wyjścia, w tym używania obiektów
-
Definicja funkcji
zmienWartosc
:void zmienWartosc(int &ref)
:- Ta linia definiuje funkcję
zmienWartosc
, która przyjmuje jeden argument - referencję do zmiennej typuint
. Kluczowe jest tutaj użycie znaku&
, który oznacza, żeref
jest referencją.
- Ta linia definiuje funkcję
ref = 30
:- Wewnątrz funkcji, wartość zmiennej przekazanej przez referencję (
ref
) jest zmieniana na 30.
- Wewnątrz funkcji, wartość zmiennej przekazanej przez referencję (
-
Definicja funkcji
main
:int main() { ... }
:- Główna funkcja programu, z której rozpoczyna się wykonanie każdego programu w C++.
-
Deklaracja zmiennej i przypisanie jej wartości:
int zmienna = 10
:- Deklaruje zmienną
zmienna
typuint
i inicjalizuje ją wartością 10.
- Deklaruje zmienną
-
Wywołanie funkcji
zmienWartosc
:zmienWartosc(zmienna)
:- Ta linia kodu wywołuje funkcję
zmienWartosc
, przekazując do niej zmiennązmienna
jako argument. PonieważzmienWartosc
przyjmuje referencję, każda zmiana wartościref
wewnątrz funkcji bezpośrednio wpływa nazmienna
.
- Ta linia kodu wywołuje funkcję
-
Wypisanie zmodyfikowanej wartości zmiennej:
std::cout << "Nowa wartość zmiennej: " << zmienna << std::endl
:- Wypisuje na ekranie nową wartość zmiennej
zmienna
, która została zmieniona przez funkcjęzmienWartosc
. W tym momencie,zmienna
ma wartość 30.
- Wypisuje na ekranie nową wartość zmiennej
-
Zakończenie funkcji
main
:return 0
:- Zwraca 0, sygnalizując pomyślne zakończenie programu.
Testy przypięte do lekcji | |
---|---|
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się |