X



【初心者歓迎】C/C++室 Ver.102【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2017/11/04(土) 16:33:35.07ID:NYxCuvMY
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります

コードを貼れる所
http://codepad.org/
https://ideone.com/

前スレ
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1500329247/
0865デフォルトの名無しさん
垢版 |
2018/06/13(水) 09:46:09.42ID:Lf/dU7gs
テンポラリオブジェクトについて質問です。

ロベールの本ですが、


Hoge Two() {
Hoge n(2);
return n;
}

int main() {
Hoge hoge(1);
hoge = Two();

とした場合、基本的には n のコピーがいったん作られて、それが hoge に
代入される形になります。このコピーこそが、テンポラリオブジェクトになる
わけです。


と書かれていますが、なぜわざわざ n のコピーを作るのでしょうか?
n は Two() 関数を抜けたら消えてしまいますが、これを消さずに、
返した方が効率的な気がします。
0866デフォルトの名無しさん
垢版 |
2018/06/13(水) 10:17:19.41ID:Lf/dU7gs
・テンポラリオブジェクト = n のコピー
・代入により、 hoge に テンポラリオブジェクトがコピーされる。

これはなんか非常に無駄なことをやっているように思ってしまいます。

hoge に 捨てずにとっておいた n を参照させれば十分のように思います。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況