Справочное руководство по C++


Ссылки


Когда переменная описана как T, что есть "ссылка на тип T", она может быть инициализирована или указателем на тип T, или объектом типа T. В последнем случае будет неявно применена операция взятия адреса . Например:

int i; int r1 = i; int r2 = i;

И r1 и r2 будут указывать на i.

Обработка инициализации ссылки очень сильно зависит от того, что ей присваивается. Как описывалось в , ссылка неявно переадресуется при ее использовании. Например

r1 = r2;

означает копирование целого, на которое указывает r2, в целое, на которое указывает r1.

Ссылка должна быть инициализирована. Таким образом, ссылку можно считать именем объекта.

Чтобы получить указатель pp, обозначающий тот объект, что и ссылка rr, можно написать pp=rr. Это будет проинтерпретировано как pp=*rr.

Если инициализатор для ссылки на тип T не является адресным выражением, то будет создан и инициализирован с помощью правил инициализации объект типа T. Тогда значением ссылки станет адрес объекта. Время жизни объекта, созданного таким способом, будет в той области видимости, в которой он создан. Например:

double rr = 1;

допустимо, и rr будет указывать на объект типа double, в котором хранится значение 1.0.

Ссылки особенно полезны в качестве типов параметров.



Содержание раздела