teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

日本語がおかしかった

2016/01/19 20:50

投稿

raccy
raccy

スコア21784

answer CHANGED
@@ -1,4 +1,4 @@
1
- `test`は`MainScene::init()`のローカル変数(スタックに積まれる)ので、`MainScene::init()`が終わると、**捨てられます**。参照でキャプチャしていますので、見ている先は同じ`test`になりますが、関数を抜けて捨てられた後のその場所の値は不定になります。
1
+ `test`は`MainScene::init()`のローカル変数(スタックに積まれる)ので、`MainScene::init()`が終わると、**捨てられます**。参照でキャプチャしていますので、見ている先は同じ`test`になりますが、関数を抜けて捨てられた後のその場所の値は不定になります。
2
2
 
3
3
  どういうことかというと、ちょっと下記のコードを見てみてください。
4
4
  ```C++
@@ -28,7 +28,7 @@
28
28
  return 0;
29
29
  }
30
30
  ```
31
- 実行してみるhoge_x()で作られた関数はどちらも`10`を返す関数を返す(誤字じゃないですよ)と思われますが、参照キャプチャであるhoge_ref()はうまくいきません。これは`a`が捨てられて、不定になってしまったからです。
31
+ hoge_ref()hoge_val()どちらも`10`を返す関数を返す(誤字じゃないですよ)と思われますが、実際は参照キャプチャであるhoge_ref()はうまくいきません。これは`a`が捨てられて、不定になってしまったからです。
32
32
 
33
33
  コードを直すのであれば、方法は二つです。
34
34