60 lines
2.5 KiB
C++
60 lines
2.5 KiB
C++
|
#include <iostream>
|
|||
|
using std::cout, std::endl;
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
В C++ вводится понятие нового типа под названием Ссылка
|
|||
|
|
|||
|
Ссылку можно рассматривать как новое имя для объекта.
|
|||
|
Ссылку также можно рассматривать как удобный указатель, который автоматически разыменовывается
|
|||
|
(На самом деле под капотом ссылка и является указателем)
|
|||
|
|
|||
|
Ссылка объявляется с помощью значка & после имени типа.
|
|||
|
Не стоит путать & используемый при объявлении ссылки с & используемым для нахождения адреса переменной.
|
|||
|
Это разные &
|
|||
|
|
|||
|
|
|||
|
Пусть есть переменная a
|
|||
|
int a = 10;
|
|||
|
Давайте создадим указатель и ссылку на эту переменную и увеличим её на 1 с помощью указателя/ссылки
|
|||
|
|
|||
|
Используем указатель: Используем ссылку:
|
|||
|
int* p = &a; int& r = a;
|
|||
|
*p += 1; r += 1;
|
|||
|
|
|||
|
|
|||
|
Ссылкой пользоваться удобно, так как:
|
|||
|
|
|||
|
1) При создании ссылки нам не нужно передавать ей адрес
|
|||
|
Просто передаём ей саму переменную, а ссылка уже сама находит её адрес
|
|||
|
|
|||
|
2) Не нужно её разыменовывать, она всегда разыменовывается сама
|
|||
|
|
|||
|
*/
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
int a = 10;
|
|||
|
|
|||
|
int& r = a;
|
|||
|
r += 1;
|
|||
|
|
|||
|
cout << a << endl;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
Задачи:
|
|||
|
|
|||
|
1) Используйте ссылку r, чтобы увеличить a в 2 раза
|
|||
|
Проверьте, как изменилась a, напечатав её
|
|||
|
|
|||
|
|
|||
|
2) Используйте ссылку r, чтобы присвоить a число 100
|
|||
|
Проверьте, как изменилась a, напечатав её
|
|||
|
|
|||
|
|
|||
|
3) Создайте переменную b типа float, равную 1.5
|
|||
|
Создайте ссылку на b и используйте эту ссылку, чтобы возвести b в квадрат
|
|||
|
|
|||
|
*/
|