|
2 / 2 / 0
Регистрация: 24.11.2016
Сообщений: 77
|
|
Использование ссылок и обычных имен переменных08.07.2017, 23:26. Показов 6016. Ответов 82
Метки нет (Все метки)
Добрый вечер, у меня такой вопрос. Может быть он покажется довольно неинтересным вам, но мне просто надо понять кое-что.
Ссылка - это дополнительное имя для объекта. Имя объекта ссылается на его адрес. Я правильно понимаю, что когда мы обращаемся к имени ссылки сначала мы получаем ее адрес, на который ссылается ссылка (содержащийся в оригинальном имени переменной), а далее значение? А имя переменной также ссылается на некую область памяти, только вот при обращении к ней, мы сразу получаем конкретно значение? Спасибо.
0
|
|
| 08.07.2017, 23:26 | |
|
Ответы с готовыми решениями:
82
Использование имен предопределенных объектов в качестве имен переменных Использование переменных вместо имен таблицы и полей в SQL-запросах Использование длинных имен переменных увеличивает вес файла с программой? |
|
Комп_Оратор)
|
|
| 19.07.2017, 13:31 | |
|
daun-autist, а прятаться-то зачем? Боязнь ссылок-указателей, обычно, излечима. В этой теме, в частности нет ни одного утверждения о том, что ссылка, это указатель или наоборот. Но паранойя есть.
Сказано, не более, чем сказано у B.S. Для особо понятливых B.S. здесь это не bulll shit а аббревиатура имени и фамилии. Не перепутайте снова. Отписываюсь.
0
|
|
|
Неэпический
|
|||
| 19.07.2017, 14:16 | |||
|
И вообще делает не то. ![]() Мой код держит живым временный объект, а не статический, который и так будет жить всю программу (почти). ![]() GbaLog-, это вообще не то и не о том.
0
|
|||
|
Комп_Оратор)
|
||||
| 20.07.2017, 00:54 | ||||
:= подошло бы, для синтаксического отражения. А доступ к объекту на запись, - простым =. И был бы вменяемый тип.
0
|
||||
|
Неэпический
|
||||
| 20.07.2017, 05:50 | ||||
|
А вот продлите время жизни временного объекта с помощью указателя. Вы же заявили что можно. Вперед. - Давайте сделаем автомобиль. - Мы всё сделали. - Но это же молоток. - Но он показывает, что если хочется что-то хитро выдумать, то это не проблема. В общем, гоните Вы, простите за мой французский. ![]() Ваш код вообще не о том. Диалог выше как раз о Вашем коде.
0
|
||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 20.07.2017, 06:52 | ||
|
Ну серьезно, того же эффекта можно достигнуть просто убрав амперсанд.
2
|
||
|
Любитель чаепитий
|
|||||||
| 20.07.2017, 07:43 | |||||||
0
|
|||||||
|
Комп_Оратор)
|
||||||||
| 20.07.2017, 08:20 | ||||||||
|
А ведь B.S. печётся не только о безопасности (невозможность создать не инициализированную ссылку). Он просит не передавать не констнантных ссылок в функции. Передавайте указатели, говорит он. Тут всё дело в читаемости и сайд эффекте. Изменение по ссылке, это сайд-эффект, а в месте вызова указатель показывает, что он может изменить значение "своего" объекта. А ссылка ведь вызывается не на ссылке (у-упс!), она вызывается на типе значения... и никто не знает получит функция копию или под капотом (то чего не бывает) Причём, передавать большие объекты , - векторы например, следовательно нужно либо по константным ссылкам, либо по указателям. Класс! Но не слушаются его. Почему-то. Передают по обычным. А вот фича с продлением жизни временного объекта, как сайд-эффект это просто необходимая вещь. Тут читаемость побоку. Я рад, что кроме данной возможности аргументов нет. Массивы ссылок, и ссылки как полноценный тип с раздельным объявлением и инициализацией остаются как и "глупость" без ответа. Боремся с инакомыслием? Не удивительно. Добавлено через 5 минут char. Вы правильно поняли как связан мой ответ для указателей на данное заявление Croessmah, Правда оно катит только для char*, но было бы весело, если бы любой константный указатель можно было бы инициализировать константой (времени компиляции, конечно) данного типа. Всего-то делов, - всем статическую память и дело в шляпе. Молотки и автомобили будут неотличимы.
0
|
||||||||
|
Заблокирован
|
|||
| 20.07.2017, 10:01 | |||
std::string сдыхает после окончания вычисления строки 10.Продление жизни — это когда временный объект, создаваемый при вычислении выражения, не уничтожается по окончании вычисления выражения (достижении точки с запятой), а продолжает жить дальше. Типичный пример — возвращаемый из функции по значению объект, привязываемый к ссылке. Или привязка prvalue к ссылке ( const int& ri = 5;).Добавлено через 1 минуту
1
|
|||
|
Комп_Оратор)
|
|||||||
| 20.07.2017, 11:06 | |||||||
0
|
|||||||
|
Заблокирован
|
|
| 20.07.2017, 11:15 | |
|
IGPIGP, я понял, что ты имел в виду. Без const работает только в MSVC, это нестандартное расширение.
0
|
|
|
Неэпический
|
|||||||
| 20.07.2017, 15:43 | |||||||
|
Renji, а если нет конструктора копирования?
![]() GbaLog-, в Вашем примере нет того, о чем мы говорим. IGPIGP, в Вашем примере нет того, о чем Вам пишут. Вы какую-то дичь пишите, выдавая свои фантазии за истину. Уже признали что указатели не могут всего что могут ссылки, хотя до этого практически лбом бились, доказывая обратное. ![]() Идем дальше и тоже с временным объектом. Возьмите адрес временного объекта без proxy-функции. Например,
IGPIGP, это именно расширение. Присваивание строкового литерала указателю не на константу запрещен стандартом уже давно.
const char[7], и это не тоже самое, что const char[].
0
|
|||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 20.07.2017, 16:52 | |
|
0
|
|
|
Неэпический
|
|
| 20.07.2017, 16:58 | |
|
Renji, конструктор копий может быть просто закрыт, а не удален. Для внешнего кода конструктор копирования использовать нельзя - недоступен, но для самого класса и друзей - пожалуйста.
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 20.07.2017, 17:03 | ||
|
0
|
||
|
Неэпический
|
||||||
| 20.07.2017, 17:20 | ||||||
|
Renji,
0
|
||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 20.07.2017, 17:42 | ||
|
0
|
||
|
Неэпический
|
|
| 20.07.2017, 17:53 | |
|
Renji, это пример. Можно и от константности избавиться без проблем.
![]() И так всё с телефона пишу, задолбали уже своим примером. ![]() Ну не могу я рассписать всё, не удобно это. Каждое смещение курсора - боль. Нужно помогать человекам, стараться додумать. В своём проекте использую в ряде случаев. Увижу в чужом коде, покажу. Я ж не могу весь код, который когда-либо видел, помнить наизусть.
0
|
|
|
Комп_Оратор)
|
||||
| 20.07.2017, 19:58 | ||||
|
0
|
||||
|
Неэпический
|
|||||||
| 20.07.2017, 22:39 | |||||||
![]() Простецкие различия:
Не по теме: Кстати, в C++17 описано не два, а три контекста с продлением жизни.
0
|
|||||||
| 20.07.2017, 22:39 | |
|
Удалить из имен обычных файлов (regular file) все цифры Чем ссылки тега nav отличаются от обычных ссылок на странице? Инициализация обычных статических переменных Отличие обычных переменных и глобальных
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|