|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
||||||
Возвращение ссылки из функции19.06.2016, 01:02. Показов 6292. Ответов 53
Метки нет (Все метки)
Привет, я немного не понимаю, почему в следующем коде в строках 16-17 надо возвращать именно ссылку:
int&, а просто int, присваивание в строке 29 не работает? Ведь мы возвращаем член класса.PS если возвращать не по ссылке - будет возвращаться rvalue? Почему? Это же член класса.
0
|
||||||
| 19.06.2016, 01:02 | |
|
Ответы с готовыми решениями:
53
Возвращение ссылки на локальную переменную |
| 19.06.2016, 14:07 | ||
|
Каким образом их можно реализовать без использования указателей?
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||||||
| 19.06.2016, 14:31 | ||||||
|
Ferrari F1, через сам объект .......................................
ref вполне будет тем самым объектом, а не указателем )
0
|
||||||
| 19.06.2016, 14:45 | |
|
Croessmah, т.е. стандартом не определено, как ссылка реализована в языке? А то, что она с точки зрения ассемблерного кода выглядит как указатель, то это заслуга разработчика конкретного компилятора? И на другом компиляторе ссылка может не представлять из себя указатель, если смотреть на низком уровне?
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||||
| 19.06.2016, 14:55 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
Неэпический
|
|
| 19.06.2016, 15:03 | |
|
Ferrari F1, Renji, причем здесь низкий код и ассемблер?
Мы говорим о C++, а не о асме. В C++ указатель и ссылка понятия разные. Вы же, почему-то не говорите, что указатель реализован как число и бла-бла-бла, а еще там электроника, электроны, дырки, насмешили, честно ![]() Добавлено через 1 минуту Renji, только тут уже появилось слово оптимизатор. Не заметили? ![]() Добавлено через 3 минуты Итого: ссылка и указатель понятия разные, как оно будет реализовано в конечном итоге - плевать. В люблм случае это некая абстракная система, придуманрая людьми для укращения электроники. Если хотите, можете еще ниже копать. Смысл? Есть язык, есть его правила. Всё остальное - реализация, которая лишь реализует эти правила, а не задает их.
1
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 19.06.2016, 15:05 | |
|
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 19.06.2016, 15:09 | ||
|
0
|
||
| 19.06.2016, 15:13 | |||
|
Я знаю, что согласно стандарту ссылка - это не хитрожопый указатель. Хотел лишь для себя узнать, специфицируется ли в стандарте способ реализации ссылок, т.е. я надеялся примерно на ответ, какой его дал Renji. Просто я раньше считал, что если функция имеет формальные параметры-ссылки, то копирования не происходит вообще. Но недавно увидел, что это не так.
0
|
|||
|
Неэпический
|
|||
| 19.06.2016, 15:20 | |||
|
Renji, не совсем. Ссылка - псевдоним, семантически ссылка не создает объект.
В стандарте даже сказано
т.к. она может совсем не занимать место (просто псевдоним), если это возможно. Также, например, ссылка может продлить время жизни временного объекта, не припомню такое о указателях. Так что ссылки - отдельный механизм языка. P.S. и это мы еще не затронули разницу l/rvalue ![]() Добавлено через 2 минуты Ferrari F1, нет, стандарт не говорит как должна быть реализована ссылка. Вот и весь ответ. Что касается низкого уровня и реализации (в т.ч. оптимизаций), то код с ссылками, скорее всего, будет идентичен коду с указателями.
0
|
|||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
||
| 19.06.2016, 15:26 | ||
0
|
||
|
Неэпический
|
|
| 19.06.2016, 15:37 | |
|
ct0r, я всегда заварачиваю мелкие объекты в вектор, который потом пихаю в список, и всё обязательно еще обкладываю shared_ptr'ом, так надежнее
![]() Это я к тому, что ситуации разные, объекты разные. Объект в 1Кб считается мелким, если все остальные в тысячу раз больше? ![]() Что касается int'ово подобных, то, конечно же копию. Кстати, тут сразу всплывает вопрос о шаблонах. А как там передаете? Отдельные версии для фундаментальных типов пишите?
0
|
|
| 19.06.2016, 15:40 | ||
), кто-нибудь обязательно пишет в ней подобную фразу. Однако, понятнее от нее не становится. И например я до сих пор не понимаю этих вещей. А выяснить их на форуме тяжело - потому что в темы приходят гуру и закатывая глаза восклицают - сколько можно, уже 200 раз разжевано! (Хорошо еще один из таких гур сейчас временно в бане ) А вопросы действительно простые:1) семантика ссылок (при передаче в функцию, возврате, присваивании и т.п.) 2) реализация ссылок (кому интересно) Мне непонятно даже первое.
1
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 19.06.2016, 15:42 | |||
|
0
|
|||
| 19.06.2016, 15:45 | ||
Говоришь таксисту адрес (или хоть координаты для GPS), он тебя привозит, а там уже не дом, а чистое (условно) поле. И ты такой - ну что же, у меня только этот адрес, придется жить здесь
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 19.06.2016, 15:47 | |
|
_Ivana, так думаю это связано с тем, что язык/Страуструп/учебники не могу и сами разъяснить эти нюансы. Подпись Croessmah полностью раскрывает большинство тем С++
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 19.06.2016, 15:48 | |
|
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 19.06.2016, 15:48 | ||
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 19.06.2016, 15:49 | |
|
0
|
|
| 19.06.2016, 15:50 | |
|
rikimaru2013, нет, я верю что есть люди (и их немало), которые до конца разбираются в этом всем хотя бы на уровне семантики. Причем, я полагаю, что таких немало даже на этом форуме. Но им скучно в 100-й раз объяснять ламерам все, и поэтому они акцентируют внимание на внутренних тонкостях. Так вот я тоже хочу примкнуть к их числу, и также с ощущением знания смотреть на барахтающихся и непонимающих
0
|
|
| 19.06.2016, 15:50 | |
|
Возвращение ссылки на локальный объект Возвращение ссылки на указатель использование её как левостороннего значения Возвращение ссылки или указателя на закрытый элемент класса. Возвращение результата функции bool и использование его в функции main() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|