|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
||||||
Возвращение ссылки из функции19.06.2016, 01:02. Показов 6037. Ответов 53
Метки нет (Все метки)
Привет, я немного не понимаю, почему в следующем коде в строках 16-17 надо возвращать именно ссылку:
int&, а просто int, присваивание в строке 29 не работает? Ведь мы возвращаем член класса.PS если возвращать не по ссылке - будет возвращаться rvalue? Почему? Это же член класса.
0
|
||||||
| 19.06.2016, 01:02 | |
|
Ответы с готовыми решениями:
53
Возвращение ссылки на локальную переменную |
| 19.06.2016, 01:09 | |
|
Вообще я ни разу не ООП-фан (не, идеи Аллена Кея мне нравятся), я имею в виду эту паранойю с инкапсуляцией, но присваивание по геттеру - это имхо сильно
Сделать приватный член, не задать его сеттер, возвращать по геттеру ссылку на него и изменять его значение через геттер - это впечатляет!
0
|
|
|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
|
| 19.06.2016, 01:13 [ТС] | |
|
_Ivana, это просто демонстрация того, что мне не понятно. Я понимаю, что есть сетеры для подобных вещей.
0
|
|
| 19.06.2016, 01:23 | ||||||
|
С позиций дилетанта могу сказать, что просто инт без ссылки ты возвращаешь не член класса, а его значение, как значение примитивного типа.
И если ты напишешь
0
|
||||||
|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
|
| 19.06.2016, 01:27 [ТС] | |
|
_Ivana, можно сказать, что возвращая что-либо по ссылке, я возвращаю lvalue? А без - rvalue? Это единственное, что укладывается у меня в голове пока что...
Добавлено через 2 минуты А в случае 16-й строки у меня вообще временный объект возвращается, верно?
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 19.06.2016, 01:27 | ||
|
PS. Почему нету смайлика рука лицо на этом форуме??? Как мне теперь общаться с собакой в шапке???
0
|
||
| 19.06.2016, 01:33 | |
|
Не знаю ничего про lvalue и rvalue, но живу в заблуждении, что примитивные типы передаются и возвращаются по значению, и чтобы было по ссылке надо это явно указывать, а объекты - по ссылке, и чтобы было по значению надо копировать. В той же джаве объекты передаются по неглубокой копии, а в шарпе есть ключевые слова для управления как передавать. Но конечно спецы С++ расскажут это точнее. Я до сих пор не понимаю ссылки в плюсах
![]() Добавлено через 2 минуты rikimaru2013, есть: Просто раньше наверное у тебя не было повода для него
1
|
|
|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
|
| 19.06.2016, 01:35 [ТС] | |
|
rikimaru2013, просто хотел по-быстрому как-нибудь изменить данные в векторе
![]() Добавлено через 2 минуты rikimaru2013, или вы тоже про сетеры сейчас будете говорить?
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 19.06.2016, 01:50 | |
|
0
|
|
|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
|
| 19.06.2016, 01:51 [ТС] | |
|
Можем ли мы отойти от тем инкапсуляции, сетеров, гетеров и т.д. Я просто так функцию назвал, я не хотел чего-либо инкапсулировать хардкорно. Объясните, пожалуйста, как эти ссылки вообще работают при возврате из подобной функции.
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|
| 19.06.2016, 01:53 | |
Сообщение было отмечено meJevin как решение
Решение
1
|
|
|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
|
| 19.06.2016, 01:55 [ТС] | |
|
Renji, аааа, теперь это делает смысл. Спасибо огромное.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 19.06.2016, 06:01 | ||
|
1
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 19.06.2016, 06:14 | |
|
Mr.X, тогда получается, что вернуть объект можно только в качестве ссылки(псевдоним имени объекта) - другие вещи не возвращение объекта)))
Указатель? Адрес(переменная) на объект Копия? Это уже клон, а не сам объект и воздействие на один не другой не влияет ) (с) с ув. придира
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 19.06.2016, 06:48 | ||
|
0
|
||
| 19.06.2016, 07:11 | ||
|
0
|
||
|
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
|
||||||
| 19.06.2016, 07:57 [ТС] | ||||||
|
Mr.X, понял. Получается, когда я в строке 17 возвращаю просто
int, у меня код в что-то подобное превращается?
имплиситли, оф корс Добавлено через 16 секунд А потом такие дауничи, как я, путаются в ссылках
0
|
||||||
|
Неэпический
|
|||
| 19.06.2016, 08:01 | |||
![]() И с точки зрения языка, ссылки - это псевдонимы. Как будет реализовано - без разницы. Это всё неоднократно обсуждалось на форуме.
0
|
|||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 19.06.2016, 13:55 | |
|
Croessmah, если сказать адрес таксисту, он довезёт вас к дому, но это не значит, что адрес == дом. То бумажка на 4 байта, а то гора кирпичей.
P.S. Если вы решили забрать у меня звание придиры в этой теме - у вас ничего не получится!!!!111111
0
|
|
| 19.06.2016, 13:55 | |
|
Помогаю со студенческими работами здесь
20
Возвращение ссылки на локальный объект Возвращение ссылки на указатель использование её как левостороннего значения Возвращение ссылки или указателя на закрытый элемент класса. Возвращение результата функции bool и использование его в функции main() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|