|
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
Использование ссылок и обычных имен переменных08.07.2017, 23:26. Показов 5984. Ответов 82
Метки нет (Все метки)
Добрый вечер, у меня такой вопрос. Может быть он покажется довольно неинтересным вам, но мне просто надо понять кое-что.
Ссылка - это дополнительное имя для объекта. Имя объекта ссылается на его адрес. Я правильно понимаю, что когда мы обращаемся к имени ссылки сначала мы получаем ее адрес, на который ссылается ссылка (содержащийся в оригинальном имени переменной), а далее значение? А имя переменной также ссылается на некую область памяти, только вот при обращении к ней, мы сразу получаем конкретно значение? Спасибо.
0
|
|
| 08.07.2017, 23:26 | |
|
Ответы с готовыми решениями:
82
Использование имен предопределенных объектов в качестве имен переменных Использование переменных вместо имен таблицы и полей в SQL-запросах Использование длинных имен переменных увеличивает вес файла с программой? |
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 18.07.2017, 03:38 | |||
|
Другой вопрос что никакой практической ценности это разрешение не несет. Компилятору и так никто не запрещает сделать оптимизацию выкидывающую любую локальную переменную, а то и весь код с ней работающий. Если же ссылка является не статическим полем структуры, то такая оптимизация попросту невозможна, ввиду того что значение полей на стадии компиляции неизвестно (было бы известно, их бы static сделали).
1
|
|||
|
Неэпический
|
|
| 18.07.2017, 03:45 | |
|
Renji, ссылки - отдельный языковой механизм со своими правилами и возможностями,
делать из них простой "авторазыменовывающийся указатель" глупо. ![]() И для компилятора оно тоже не так. Компилятор знает о ссылках и о их возможностях. В конце концов оно если и превращается в указатель, то не в C++ коде и код тот к c++ не имеет уже никакого отношения.
3
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 18.07.2017, 04:27 | |||
|
Впрочем, в большинстве случаев детали низкоуровневой реализации ссылок действительно не критичны.
0
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 18.07.2017, 06:56 | ||
|
ссылка - есть результат разыменовывания указателя. отсюда - колоссальное количество мест, где фигурируют ссылки, которые гарантированно не приводят к косвенному обращению к объектам.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||||||||
| 18.07.2017, 08:29 | ||||||||||||
|
потому что: 1. есть синтаксический сахарок, который полностью их имитирует. 2. есть наблюдаемое и ожидаемое поведение, связанное с инициализацией.
выглядит как утка. крякает как утка. плавает как утка. что тут нужно понимать? понятно, что конструкторы фундаментальных типов - не более чем сахарок для единообразия того безобразия, что творится в шаблонах. главное не налажать:
1
|
||||||||||||
|
Любитель чаепитий
|
|||
| 18.07.2017, 08:38 | |||
![]() понятно, что у них есть всё для имитации конструкторов и даже деструкторов. но их надо отличать, я считаю. ) а т.к. там явно указан тип int, то термин "копирующий конструктор" там не подходит, скорее просто "копирование".
1
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 18.07.2017, 08:55 | |||
|
шаблоне итак доставляет. если ещё начать пасти что тут у нас фундаментальное, и чем оно различается, да нафиг нужно. закон един для всех. независимо от цвета кожи, вероисповедания, классовой принадлежности, и собственной фундаментальности. лучше воспринимать дефолтный конструктор, как unspecified behavior, дабы не делать предположений, которые делать не нужно. и сразу проще станет жизнь.
0
|
|||
|
Заблокирован
|
||
| 18.07.2017, 13:23 | ||
|
0
|
||
|
Комп_Оратор)
|
|||
| 18.07.2017, 15:35 | |||
Автор языка говорит буквально: << (константный) указатель, при каждом использовании которого происходит разыменование>> а потом сурово предупреждает: << надо помнить, что ссылка в отличие от указателя не является объектом, над которым можно выполнять операции>> Думаете он не понимает, что если указатель при каждом использовании разыменовать, то доступа к такому указателю нет и уже именно поэтому ни о каких операциях над ним не может быть и речи? То есть: - Вы только подкрадётесь (он - ссылко-указатель сидит тихо, будто вас и не видит), и как только кинетесь на него чтобы использовать, а он р-р-р-аз и разименовался. У вас в руках объект. Он (автор языка) понимает, что такой указатель не дастся никогда и никому как указатель и уже поэтому нельзя применить к нему никакие операции (как к ссылко-указателю). Только к объекту можно. Но выразить такое поведение словами он не в силах. Держу пари, что если бы он рискнул засветиться под нейтральным ником в подобном обсуждении, с подобными высказываниями, то мало бы ему не показалось. В общем этот предмет достаточно сложно выразить словами как таковой. (imho)
0
|
|||
|
Заблокирован
|
|
| 18.07.2017, 17:11 | |
|
IGPIGP, наивно полагать, что выступающие против сравнения ссылок с указателями не в курсе, как ссылки реально реализуются. Пекутся исключительно о том, чтобы у новичков не возникало каши в голове.
1
|
|
|
Неэпический
|
||
| 18.07.2017, 21:01 | ||
|
Но что-то я не вижу ни у кого стремления рассматривать переменную с такого ракурса. Так почему же ссылки нужно рассматривать через более низкую реализацию, или объяснять ссылки с помощью другой сущности? Когда говорят, что ссылка - это "указатель, при каждом использовании которого происходит разыменование", то просто стараются объяснить что-то новое на основании какой-то знакомой сущности. А стоит ли так делать, особенно если учитывать, что такое объяснение отстраняет нас от изучаемого языка и уносит в другую сторону? Прежде чем ссылка станет "разыменовынным указателем" (если станет), будет проверена правильность и семантика использования ссылки, и ни о каких указателях речи вообще не идет. Это именно отдельный механизм, и рассматривать его нужно как отдельный механизм. Не по теме: Порой кажется, что это всё заговор C'шников. :D Если уж на то пошло, то почему бы не объяснить классы с помощью теории струн? Ведь все знают, что не существует никаких указателей.
1
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 18.07.2017, 22:10 | |||
|
0
|
|||
|
Комп_Оратор)
|
||||||
| 18.07.2017, 22:38 | ||||||
|
Я думаю, со словом "глупость" ты погорячился, но признавать не хочется. Вот утверждать то, что авторазыменовывающийся указатель вдобавок не доступен как указатель, это таки свойство математика (гуманитария). Хотя метру простительно, конечно. Добавлено через 10 минут Я гуманитарий в меньшей степени чем технарь и буду с этим спорить. Иначе ни как.
0
|
||||||
|
Неэпический
|
||||
| 19.07.2017, 09:55 | ||||
Ссылка как указатель, который автоматически разыменовывается: адрес <- указатель <- ссылка.Ссылка как отдельный механизм, основанный на адресации памяти: указатель -> адрес <- ссылка.Ну и зайдем прямо к нему на сайт и смотрим:
0
|
||||
|
Комп_Оратор)
|
||||
| 19.07.2017, 11:54 | ||||
|
Что касается разных возможностей, то нет таких возможностей предоставляемых ссылкой, которые не предоставлял бы указатель. Но не наоборот. Я думаю речь об этом. Хотя это не касается "глупости" от Б.С. как таковой.
0
|
||||
|
Неэпический
|
|||||||
| 19.07.2017, 12:19 | |||||||
1
|
|||||||
|
Комп_Оратор)
|
||||||||
| 19.07.2017, 13:09 | ||||||||
|
Добавлено через 4 минуты
0
|
||||||||
| 19.07.2017, 13:25 | |
|
Не по теме:
Кликните здесь для просмотра всего текста
Не по теме: Croessmah, существуют ещё сектанты из секты "Массивов не существует, это просто сахар над указателями". Не знаю даже, кто хуже, они или участники секты "Ссылки это указатели".
0
|
|
|
Любитель чаепитий
|
|||||||
| 19.07.2017, 13:27 | |||||||
![]()
0
|
|||||||
| 19.07.2017, 13:27 | |
|
Удалить из имен обычных файлов (regular file) все цифры Чем ссылки тега nav отличаются от обычных ссылок на странице? Инициализация обычных статических переменных Отличие обычных переменных и глобальных
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
|
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|