Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 12.02.2019
Сообщений: 8

Особенности ссылок

14.02.2019, 19:28. Показов 5396. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим есть некая функция:
std::string str() {}
которая возвращает некоторую строку.

Объясните, пожалуйста, почему:
C++
1
std::string& value = str();
нельзя, а
C++
1
const std::string& value = str();
можно?

Я явно не до конца понимаю тут принцип работы ссылок, хотелось бы разобраться

Добавлено через 8 минут
Получил ошибку:
"non-const lvalue reference to type 'basic_string<...>' cannot bind to a temporary of type 'basic_string<...>'"
И хочу понять, почему ссылку нельзя забиндить на временное значение
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2019, 19:28
Ответы с готовыми решениями:

Особенности использования указателей и ссылок в C++ при возврате из функции
Пусть у нас есть некий класс CBase и есть функция, которая создает и возвращает объект класса CBase. Создать она его может стеке или в...

Особенности NTFS
Доброго времени суток! Уважаемые форумчане, проясните мне пожалуйста один вопрос. Пишу программу, которая ищет на диске...

Особенности rand()
Привет. Написал в морском бое авто расстановку кораблей (пока только 4х палубных:), но я в процессе!). функция случайного поворота кораблей...

27
Just Do It!
 Аватар для XLAT
4221 / 2687 / 656
Регистрация: 23.09.2014
Сообщений: 9,246
Записей в блоге: 3
15.02.2019, 01:03
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DrOffset Посмотреть сообщение
void foo(int & a) { a = 3; }
int main()
{ double b = 2.;
foo(b); // чему равно b?
}
Цитата Сообщение от DrOffset Посмотреть сообщение
Попробуйте понять в чем именно здесь проблема, если предположить, что привязку временного объекта в неконстантной ссылке делать можно.
слишком толсто для простого нарушения типов.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
15.02.2019, 01:12
Цитата Сообщение от XLAT Посмотреть сообщение
слишком толсто для простого нарушения типов.
Что это значит?
0
Just Do It!
 Аватар для XLAT
4221 / 2687 / 656
Регистрация: 23.09.2014
Сообщений: 9,246
Записей в блоге: 3
15.02.2019, 01:15
Цитата Сообщение от DrOffset Посмотреть сообщение
Что это значит?
ваш пример никто не скомпилит.

сами догадаетесь или спрашивать будете: "почему?"
если будете, то я уже ответил выше.
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
15.02.2019, 01:20
Цитата Сообщение от XLAT Посмотреть сообщение
сами догадаетесь или спрашивать будете: "почему?"
Зачем его компилировать? Это псевдокод, который показывает проблему в старом С++.

Мой пример, на самом деле не мой пример, а пример по мотивам из книги Страуструпа.
Поэтому все ваши претензии про "не скомпилит" можете адресовать ему напрямую.

На всякий случай:
3
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
15.02.2019, 09:15
DrOffset,
Почитал драфты 11-17
Ты убедил меня
Спасибо

Прошу у пользователей прощения за дезинформацию по поводу висячих ссылок
3
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
15.02.2019, 10:19
Цитата Сообщение от Undisputed Посмотреть сообщение
Прошу у пользователей прощения за дезинформацию по поводу висячих ссылок
прощаю
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
15.02.2019, 17:52
Цитата Сообщение от DrOffset Посмотреть сообщение
Дизайн и Эволюция C++
Интересная цитата из книги
Рассказ об использовании C++ был отложен до выхода второго издания книги «Язык программироования C++» [2nd]. К сожалению, некоторые проигнорировали это предупреждение. В результате C++ часто воспринимают как набор непонятных и не связанных между собой деталей, а потому и не могут написать на нем красивой и легкой для сопровождения программы
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
15.02.2019, 22:23
Цитата Сообщение от _stanislav Посмотреть сообщение
Интересная цитата из книги
Там много чего интересного
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2019, 22:23

Особенности массивов с++
Почему на место параметра - указатель на массив при вызове функции можно использовать , как аргумент имя статического массива?

Особенности инкремента
Здравствуйте!Возник вопрос касательно операции инкремента(++) допутим у нас есть код #include &lt;iostream&gt; int main() ...

Особенности наследования
Я не понимаю ProperFraction f1(1,2) вызывается цепочка ProperFraction(int n, int d){ FloatFraction(){ ...

Особенности вызова функций
Какие особенности вызова функций, в описании которых использованы ключевые слова _stdcall, _cdecl, inline? Спасибо!)

Особенности использования const_cast
Почему не работает код: 1. const int* const pInt = new int(0); const_cast&lt;int*&gt;(pInt) = new int(4); 2. void...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru