В c ++, когда у вас есть тип параметра функции, похожий на const Type&
, то, что вы делаете, позволяет пользователю передать какое-то значение в по ссылке - указатель на значение неявно передается, но для простоты использования компилятор позволяет обрабатывать его так, как если бы это было значение.
В некоторых случаях компилятор также может оптимизировать его, чтобы указатель вообще не использовался, и функция могла напрямую ссылаться на память значения.
Причина, по которой используется const
, заключается в том, чтобы защитить себя от изменения памяти, которую пользователь не ожидает от вас, и также заставить его работать, даже если пользователь передает переменную const.