Функция может возвращать ссылку. В результате такая функция может использоваться в левой части оператора присваивания. В качестве примера рассмотрим следующую простую программу:
#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».