- 682 名前:デフォルトの名無しさん mailto:sage [2018/04/26(木) 07:25:57.17 ID:E0/AuDcr.net]
- >>669
どこのメモリにどう作られているのかという質問だと思うけど、 C や C++ では式の値として構造体やオブジェクトが認められていて、 コンパイラがどこぞにメモリを用意して上手いこと作ってくれることになっている。 式や式の一部の値としてだけ現れて変数に格納されないオブジェクトはテンポラリーオブジェクトとか言うので、 詳細はテンポラリーオブジェクトでぐぐって。 >>669 のmain はテンポラリーオブジェクトを使って b を用意せず TestB().getA(); ともかける ところで今回の質問の、関数の戻り値に関するコンパイラの動作は 「戻り値最適化」なる最適化によって色々複雑なことになっているので これは自分で戻り値最適化でググって調べて欲しい。
|

|