Temat: 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ść zmiennejzmiennaza 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::coutdo 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, żerefjest 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ą
zmiennatypuinti 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ązmiennajako argument. PonieważzmienWartoscprzyjmuje referencję, każda zmiana wartościrefwewną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,zmiennama 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ę |