Функции, возвращающие результат по ссылке

В тех случаях, когда результат работы функции представляется не одним, а несколькими значениями, возврат их с помощью оператора return становится невозможным, так как по определению он может возвращать только одно значение. Более того, в заголовке функции может быть записан только один тип результата, а не несколько. Для таких случаев в С++ предусмотрен другой вид функций, называемый функциями, возвращающими результат по ссылке. В телах этих функций не используется оператор возврата return, так как он не может быть использован для возврата нескольких значений.

Синтаксис заголовка функций, возвращающих результат по ссылке, имеет вид:

void имя(тип1 имя1, тип2 имя2,…, типN имяN, тип1 & имя1, тип2 & имя2,…, типN & имяN)

 

Здесь void – ключевое слово, означающее пусто;

тип1 имя1, тип2 имя2,…, типN имяN – тип и имя входных данных;

тип1 & имя1, тип2 & имя2,…, типN & имяN – тип и имя выходных данных.

Все данные в скобках образуют список параметров, состоящих из имен абстрактных данных (не имеющих значений).

Перед именами выходных данных ставится знак & (амперсанд). Этот знак обозначает ссылку на ту ячейку, которая выделена для переменной, помеченной этим знаком, и куда надо помещать результат.