У std::string это char& или const char&.
А почему тут именно ссылка, а не просто char
Это то, что ВОЗВРАЩАЕТ оператор квадратных скобочек. Мы получаем доступ к символу и даже можем менять его. Сама стринга внутри состоит из чаров, конечно.
Так, а тогда почему char& или const char&, второе - если не меняем сам символ?
Это зависит от того, у константного string мы вызываем operator[] или у обычного. Такая вот перегрузка оператора по константности. https://en.cppreference.com/w/cpp/string/basic_string/operator_at
Не шарю, но я просто в голове представил, что, наверное, под капотом этого оператора функция, принимающая параметр char&, чтобы изменения были глобальными, ведь если просто char передавать, то это не то. А в случае, const string не понимаю смысла туда передавать const char&, ибо мы никак уже не можем менять содержимое const string
Если basic_string хранит символы какими-то тяжеловесными типами, то в этом есть смысл.
Обсуждают сегодня