Ссылки — это твой выбор по умолчанию в большинстве случаев. Используй ссылки когда:
Ссылки обеспечивают семантику ссылок, которая скрывает детали реализации, позволяя тебе писать код, сосредоточенный на решении задачи, а не на низкоуровневых манипуляциях с указателями.
Указатели нужны когда ссылки не подходят:
NULL или sentinel value (что-то вроде «объекта нет»)| Аспект | Ссылки | Указатели |
|---|---|---|
| Переприсвоение | Не разрешено | Разрешено |
| Null значения | Невозможны | Возможны |
| Синтаксис | Чище, неявный | Требуется явное разыменование |
| Типичное использование | Публичные интерфейсы | Внутренняя реализация |
Думай о ссылках как о «внешней оболочке» твоих объектов (интерфейс, обращённый наружу) и об указателях как о «внутренностях» (внутренняя реализация). Ссылки обеспечивают сокрытие информации, скрывая семантику ссылок от вызывающего кода, что улучшает читаемость и поддерживаемость кода.
Ссылки предпочтительны для публичных интерфейсов функций, потому что они обеспечивают более чистый синтаксис и всегда гарантируют, что функция работает с валидным объектом.
Новый — ещё не проверен сообществом
Вы