ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
905287 Топик полностью
=AlexD= (19.02.2019 07:33 - 07:36, просмотров: 73) ответил fk0 на Тяжелое детство и восьмибитные игрушки никогда мне не давали понимания отличия ссылки от указателя. По-моему это просто адрес лежащий в регистре процессора. Другие концепции в голове не укладываются. А есть ли они?
Есть несколько моментов. Возвращая ссылку - ты возвращаешь сам объект, а не указатель на него, соответственно для использования не нужно разыменовывать. Это полезно в ряде случаев 1 в шаблонной магии исключается лишняя адресная арифметика 2 возможны цепочечные операции очень распространённые в плюсах, классика: std::cout << " tadam " << std::endl; попробуй сделать такое на указателях, да и вообще нормальная перегрузка операторов без ссылок невозможна чисто семантически Тут вообще очень много ньюансов связано с lvalue (&val) и rvalue (&&val) . Опять же, без этих возможностей некоторые фокусы с++ просто невозможны, но тут нужно глубоко погружаться в язык. Если коротко, ссылки были введены для оптимизации. Учитывая наличие конструкторов(создания, копирования, перемещения)/деструкторов появилась потребность в семантической оптимизации, т.к. компиляторная уже не справлялась.
надо придумать объяснение этому мудизму, иначе рехнуться можно