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