This repository has been archived on 2023-05-13. You can view files and clone it, but cannot push or open issues or pull requests.
mipt_cpp/seminar01_overload/classroom_tasks/code/01ref/00ref.cpp
2022-09-01 16:37:41 +03:00

60 lines
No EOL
2.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 в квадрат
*/