Referencje jako parametry
Lekcja 9 z 14 w kursie Wskaźniki w C++ w Coddy.
Teraz możemy zobaczyć, jak ułatwić sobie pracę, używając referencji jako argumentów podczas wywoływania funkcji.
Jeśli wrócimy do lekcji o przekazywaniu wskaźników jako parametrów, wspomnieliśmy, że gdy przekazujemy wartości do funkcji, wartości, na których operujemy wewnątrz funkcji, są kopiami oryginalnych przekazanych wartości.
Użyliśmy wskaźników, aby rozwiązać ten problem, ale zamiast używać adresów, dereferencji, wskaźników itd., możemy po prostu oznaczyć parametry, które przyjmujemy, jako referencje i wykonywać zwykłe operacje tak jak w przypadku zwykłych wartości
// Zamiast tego
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
cout << *x << " " << *y << endl;
}
// Możemy zrobić tak
void swap(int &x, int &y) {
int temp = x;
x = y;
y = temp;
cout << x << " " << y << endl;
}Teraz, jeśli wywołamy funkcję swap(), wartości dwóch przekazanych liczb całkowitych zostaną trwale zmienione. Zamiast więc pobierać adresy pamięci tych wartości i zmieniać wartości znajdujące się pod tymi adresami przez ich dereferencję, po prostu przekazujemy referencje do rzeczywistych wartości jako argumenty i wykonujemy na nich operacje. Ponieważ odnoszą się one do oryginalnych wartości, każda zmiana jest trwała
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wyzwanie
ŁatwyDokończ funkcję Calculator z dwóch lekcji temu, ale zamiast używać wskaźników, użyj referencji do wartości zmiennych large i small. W funkcji odejmij od large różnicę między large i small, a small dodaj do siebie.
Dane wejściowe
5 3
Dane wyjściowe
5 3
3 6
Wyjaśnienie
Odjęcie od 5 różnicy między 5 a 3, która wynosi 2, daje 5 - 2 = 3, a dodanie 3 do 3 daje 6
Uwaga: NIE pisz funkcji main()
Spróbuj swoich sił
#include <iostream>
using namespace std;
void Calculator(// Przyjmij argumenty: large i small przez referencję) {
// Wpisz kod wykonujący obliczenia
}
// NIE pisz funkcji main()Wszystkie lekcje w sekcji Wskaźniki w C++
2Wskaźniki i referencje
Wskaźniki jako parametryReferencje - &Referencje jako parametryWskaźniki a referencje3Dynamiczna alokacja pamięci
Operatory new i deleteWycieki pamięciTablica dynamicznaTablica dynamiczna — wstawianiePoćwicz samodzielnie: Kompilator C++ online