Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2017, 06:20   #11
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
....добавлю, ссылки - это синтаксический сахар языка, для указателей. В ассемблерном коде они заменены на указатели. Т.о. размер самой ссылки = размеру указателя в системе (реально столько памяти выделит), но это "сахар", так что, работая со ссылкой, вы как - бы работаете с оригинальным объектом.
Это не сахар, а отдельная сущность.
И указатели и ссылки оперируют адресами, но делают это по разному.
То что можно сделать с помощью ссылки не всегда
возможно сделать с помощью указателя и наоборот.
Так что ссылки - отдельная система, независимая от указателей C++.

Какой-нибудь range-based-for - да, сахар, но не ссылки.

Последний раз редактировалось Croessmah; 07.08.2017 в 06:30.
Croessmah вне форума Ответить с цитированием
Старый 08.08.2017, 09:17   #12
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Это не сахар, а отдельная сущность.
И указатели и ссылки оперируют адресами, но делают это по разному.
То что можно сделать с помощью ссылки не всегда
возможно сделать с помощью указателя и наоборот.
Так что ссылки - отдельная система, независимая от указателей C++.

Какой-нибудь range-based-for - да, сахар, но не ссылки.
Как по мне - сахар, в итоговом коде - указатели. Если вы захотите повызвать функции из длл, не имея хидера, вы будете юзать указатели, хотя в хидере, могли быть и ссылки.
alexzk вне форума Ответить с цитированием
Старый 08.08.2017, 11:44   #13
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
Как по мне - сахар, в итоговом коде - указатели.
В итоговом коде - адреса.
Ассемблер, как и любой язык - лишь синтаксический сахар.
Цитата:
Сообщение от alexzk Посмотреть сообщение
Если вы захотите повызвать функции из длл, не имея хидера, вы будете юзать указатели, хотя в хидере, могли быть и ссылки.
И из библиотек, в основном, экспортируют всё как extern "C",
иначе эта библиотека не будет переносимой.
Если оттуда что-то со ссылками экспортируется, то это вообще печаль.

Последний раз редактировалось Croessmah; 08.08.2017 в 11:51.
Croessmah вне форума Ответить с цитированием
Старый 10.08.2017, 22:07   #14
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
....добавлю, ссылки - это синтаксический сахар языка, для указателей.
начинается...

угадайте загадку:
какой тип имеет результат разыменовывания укзателя?
_Bers вне форума Ответить с цитированием
Старый 10.08.2017, 22:52   #15
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
какой тип имеет результат разыменовывания укзателя?
Здесь все сложно, ибо
Цитата:
If the type of the expression is “pointer to T”, the type of the result is “T”
Croessmah вне форума Ответить с цитированием
Старый 12.08.2017, 14:37   #16
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Здесь все сложно, ибо
там ещё выше,
буквально предыдущим предложением,
говорится, что результат - lvalue,
которое ссылается на объект,
связанный с исходным указателем

теперь смотрим,
что по факту возвращают компиляторы.

и проникаемся:
что же имел ввиду стандарт?
говоря что результат - ссылка,
но при этом результат сам T?

ссылка, которая напрямки обозначает сам объект,
минуя любых посредников.
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение типа класса по переменной на объект этого класса при компиляции phomm Общие вопросы Delphi 24 08.04.2011 14:11
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 17:37
Параметр конструктора класса = объект этого класса nazavrik Общие вопросы C/C++ 6 14.02.2010 13:48
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? TwiX Общие вопросы Delphi 3 15.11.2009 00:54
Размер имеет значение Xenofibrius Общие вопросы Delphi 3 20.04.2008 23:38