Что такое амперсанд при использовании после имени класса, например ostream & operator
Я знаю все о указателях, и амперсанд означает "адрес", но что это значит в этой ситуации?
кроме того, при перегрузке операторов, почему обычно объявляют параметры с const?
4 ответов
в этом случае вы возвращаете ссылку на объект ostream. Строго говоря, амперсанд как "адрес" не всегда будет работать для вас. здесьнекоторая информация из C++ FAQ Lite по ссылкам.
Что касается const, корректность const очень важна в безопасности типа C++ и что-то, что вы захотите сделать как можно больше. Другой страница из FAQ помогает в этом отношении. const помогает вам от изменений, связанных с побочными эффектами, искажая ваши данные в ситуациях, когда вы не ожидаете его.
в зависимости от контекста амперсанда это может означать 2 разные вещи. Ответ на ваш конкретный вопрос заключается в том, что это ссылка, а не "адрес". Это очень разные вещи. Очень важно понять разницу.
причина сделать параметры const заключается в том, чтобы убедиться, что они не изменяются функцией. Это гарантирует вызывающему объекту функции, что параметры, которые они передают, не будут измененный.
Это означает, что переменная является ссылкой. Это что-то вроде указки, но не совсем.
посмотреть: Ссылка (C++)
в объявлениях типа C++ амперсанд означает "ссылка". В этом случае operator <<
возвращает ссылку на элемент