Step 9 (S-3130)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/541/step/9

Ссылки в C++ используются не только для передачи изменяемых параметров в функции, но и для передачи больших параметров, копировать которые дорого. Примерами значений, копирование которых может оказаться дорогой операцией, являются значения типа string, который вы уже могли видеть, или объекты классов-контейнеров: vector, list, map, set, с которыми вы еще не встречались.

В случае, если мы хотим избежать ненужного копирования при передаче параметров, но не хотим позволять изменять параметр внутри функции, его следует передавать по константной ссылке:


int foo(string const &s) { /* нельзя менять значение s */ }


Для примитивных типов передача параметров по константной ссылке возможна, но не имеет особого смысла, т.к. их копирование дёшево.

Подробнее об этом мы расскажем на следующей неделе.