Por que não referência não-const a objetos temporários? [duplicado]
C ++ permite a atribuição de objetos temporários apenas à referência const. Não permitirá a atribuição de objetos temporários para referência.
Por exemplo:
String& a = String("test"); // Error
const String& a = String("test"); // Ok
Em todos os lugares eu google para este resultado, eu só vejo as seguintes respostas
Modificar objetos temporários causaria problemas não identificáveisModificar objetos temporários é perigosoEm algum momento, você vai esquecer que é uma variável temporáriaTem sido dito, objetos temporários desaparecem após a declaração. Então você não deve modificá-lo.
Se C ++, está tão interessado em bloquear a modificação dos objetos temporários, deveria ter bloqueado a leitura dos objetos temporários, certo? Se o objeto temporário desapareceu, então não há sentido em ler o conteúdo de lá, certo? Os possíveis casos, onde um direito pode ocorrer, também podem envolver a leitura.
Então, por que ele está bloqueando, escreva sozinho e permitindo a leitura?
Por favor, me dê uma explicação sólida sobre o código c ++.
Por favor, não desvie a questão apontando algumas alternativas. Por favor, dê-me uma resposta sólida com código porque const int & é permitido e int & não é permitido para objetos temporários.
Um diz && está lá .. Minha pergunta diferente .. Outro diz, mudando não refletirá .. Mudando não refletirá até mesmo quando for const int & too. Por exemplo: double a; Const int & i = a; um ++; não afetará i ..