C++ では、一時オブジェクトを const 参照にのみ割り当てることができます。参照する一時オブジェクトの割り当てを許可しません。
例えば:
String& a = String("test"); // Error
const String& a = String("test"); // Ok
この結果をグーグルで検索しても、次の回答しか表示されません
- 一時オブジェクトを変更すると、識別できない問題が発生する可能性があります
- 一時オブジェクトの変更は危険です
- ある時点で、それが一時変数であることを忘れるでしょう
一時オブジェクトはステートメントの後に消えると言われています。したがって、変更しないでください。
C++ が一時オブジェクトの変更をブロックすることに非常に熱心である場合、一時オブジェクトの読み取りをブロックする必要がありますか? 一時オブジェクトが消失した場合、そこから内容を読み取っても意味がありませんよね? 権利が発生する可能性のあるケースには、読み取りも含まれる可能性があります。
では、なぜ書き込みのみをブロックし、読み取りを許可しているのでしょうか?
しっかりとしたC++コードの説明をお願いします。
いくつかの代替案を指摘して質問を逸脱しないでください。const int & が許可され、 int & が一時オブジェクトに許可されない理由をコードで明確に答えてください。
&&がそこにあると言う..私の質問は違う..別の言い方をすると、変更しても反映されない.. const int & tooであっても、変更しても反映されません。例: ダブル a; 定数 int & i = a; ++; 影響しません。