Программирование на C и C++

Онлайн справочник программиста на C и C++

Возврат ссылок

Функция может возвращать ссылку. В результате такая функция может использоваться в левой части оператора присваивания. В качестве примера рассмотрим следующую простую программу:

#include <iostream.h>
char &replace(int i) ; // возврат ссылки
char s [80] = "Hello There";
int main()
{
replace(5) = 'X'; // присвоение X пробелу после Hello
cout << s;
return 0;
}
char &replace(int i)
{
return s [ i ];
}

Эта программа заменяет пробел между словами «Hello» и «There» символом «X». В результате программа выводит на экран «HelloXThere».

Функция replace() в соответствии со своим объявлением возвращает ссылку на символьный мас­сив. В соответствии со своей реализацией функция replace() возвращает ссылку на элемент масси­ва s, определяющийся аргументом i. Далее возвращаемая функцией replace() ссылка используется функцией main() для присвоения элементу буквы «X».