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

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

26.11.2015, 23:54. Показов 11239. Ответов 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,035
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru