n играет роль псевдонима i,
Следовательно, n играет роль псевдонима i, и n = 3*n также присваивает i значение 3*i.
Если инициализатор представляет собой константу или объект
нессылочного типа, то Borland C++ создаст временный объект, для
которого ссылка действует как псевдоним:
int& ir = 16; /* создается временный объект int, с именем
псевдонима ir, который получает значение
16 */
float f;
int& ir2 = f; /* создается временный объект int, с именем
псевдонима ir2, f перед присваиванием
преобразуется */
ir2 = 2.0 /* теперь ir2 = 2, но f остается без измене-
ний */
Если формальные и фактические аргументы имеют различные (но
совместимые по присваиванию) типы, то автоматическое создание
временных объектов позволяет выполнять преобразования ссылочных
типов. При передаче по значению, разумеется, проблем с преобразованием типов меньше, поскольку перед присваиванием формальному
аргументу копия фактического аргумента может быть физически изменена.
Содержание раздела