Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/55: Рейтинг темы: голосов - 55, средняя оценка - 4.69
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886

Константные и не константные ссылки. Приведения типов. Нужно уточнение

26.11.2015, 23:54. Показов 11617. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не очень понимаю в чем различие (2,3 строчки).

C++
1
2
3
 int x = 10;
 double &y = x;
 const double &y = x;
Почему для не константной ссылки временный объект, созданный из x не вяжется с double &,
в то время как временный объект, созданный из x без проблем вяжется с const double &
____________
Просьба не приводить цитаты стандарта, а просто по-человечески описать русскими словами. (русскоязычное описание ситуации при желании можно закрепить стандартом).
Я могу видеть только то, что создается временный объект (const double), который в последствии копируется в y, а т.к. константой инициализировать переменную можно, то для меня логично, что строчка 2 валидна, но это не логично для компиляторов. В то время как строчка 3 валидна и для меня и для компиляторов
1
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2015, 23:54
Ответы с готовыми решениями:

Константные ссылки на неправильные тип данных
Здравствуйте, вопрос небольшой, так что сразу к делу. Я тут вычитал, что когда мы создаем ссылку на один тип, а присваиваем ему...

Можно ли в std::vector хранить константные ссылки?
Можно ли в std::vector хранить константные ссылки? при обьявлении не ругается, когда добавляю (const Item* ) в нем содержится куча...

Константные функции
Почему все работает? class My { public: My(); int retFunc() const; private: bool isRet = false; };

43
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
30.11.2015, 13:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrOffset Посмотреть сообщение
Даже дословный перевод без украшательств русской речи выглядит приемлемо:
Временный объект, привязанный к ссылке в параметре функции при вызове, продлевается до конца полного выражения содержащего вызов.
Почти один в один с оригиналом по расположению слов и порядку чтения.
Кстати, мысль. Что, если здесь на форуме создать хранилище русских переводов цитат из стандарта, попросить людей цитировать его в переводе, и туда эти переводы заносить. Так можно, шутя и играя, накопить довольно много полезной информации.
Мне кажется, будет очень полезно. А то изучение английского хорошо, а изучение стандарта все-таки лучше.
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
30.11.2015, 14:17
Mr.X, нужен кто-то, кто займется
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
30.11.2015, 14:36
Цитата Сообщение от Croessmah Посмотреть сообщение
Mr.X, нужен кто-то, кто займется
Ну, можно так сделать. Кто-то заводит и закрепляет соответствующую тему. И попросить цитирующих стандарт по-русски вставлять цитату в эту тему, а в текущей теме давать на нее ссылку.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
03.12.2015, 00:04
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
1) в строке 8 создается временный объект и ссылка ссылается на него rv
2) в 9 строке мы обращаемся к метода объекта, которого нет. Стандарт не гарантирует, что он жив и нужном состоянии. Следовательно если архитектура кода, может при не верных действиях содержать код - код UB.
hoggy, можете пролить свет кто прав - пожалуйста.
все верно.
не константная ссылка не продлевает жизнь временного объекта.
поитогу имеем труп,
который однако с высокой степенью вероятности сохраняет актуальное состояние.

я сталкивался с ситуацией,
когда код работал исправно,
но стал чудить при некоторых настройках оптимизации.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2015, 00:04

Константные объекты
#include <iostream> #include <windows.h> using namespace std; class CTest { public: int A,B; CTest(int Aval,int...

Указатели на константные объекты
Нельзя создать неконстантный указатель на константный объект по понятным причинам, но имеем такой код: typedef char* pStr; int...

Константные поля класса
Такой вопрос, как инициализировать константные поля класса? Работают конструкции вида obj():t(0){}; который используется в примере ниже. А...

Константные функции-члены
можно ли функцию-член объявить константной, если она возвращает указатель-член класса? Ведь она не изменяет занчение самого укзателя, но...

Константные аргументы классов
Добрый вечер! Поясните мне в чем беда.. есть код: // Hanoian towers. Lab2 #include <iostream> using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru