Возможный дубликат:
Продлевает ли константная ссылка временную жизнь?
продлевая время жизни временных людей
C++ позволяет присваивать временные объекты только константной ссылке. Он не позволяет присваивать временные объекты для ссылки.
Например:
String& a = String("test"); // Error
const String& a = String("test"); // Ok
Везде, где я гуглюсь по этому результату, я вижу только следующие ответы
- Изменение временных объектов может вызвать проблемы, которые невозможно идентифицировать
- Модификация временных объектов опасна
- В какой-то момент вы забудете, что это временная переменная
Как было сказано, временные объекты исчезают после утверждения. Таким образом, вы не должны изменять его.
Если C++ так заинтересован в блокировании модификации временных объектов, он должен был заблокировать чтение временных объектов, верно? Если временный объект исчез, то нет смысла читать содержимое оттуда, верно? Возможные случаи, когда может возникнуть право, также могут включать чтение.
Тогда почему ее блокируют запись в одиночку и позволяют читать?
Пожалуйста, дайте мне твердое объяснение кода C++.
Пожалуйста, не отклоняйтесь от вопроса, указав некоторые альтернативы. Пожалуйста, дайте мне точный ответ с кодом, почему const int & разрешено и int & не допускается для временных объектов.
Один говорит && есть.. мой вопрос другой.. Иными словами, изменение не будет отражать.. Изменение не будет отражаться, даже если это const int & слишком. Например: двойной а; Const int & я = а; a++; не повлияет на меня..