回答編集履歴

1

変数の有効範囲について補足

2016/01/20 07:12

投稿

kutsulog
kutsulog

スコア985

test CHANGED
@@ -8,9 +8,15 @@
8
8
 
9
9
  objがWorkerクラスのメンバーでないためエラーになっています
10
10
 
11
+ objが有効なのはinputdata関数の中だけです。
12
+
13
+ Worker *objをクラスのメンバー変数にすれば
14
+
15
+ コンパイルエラーは出なくなります。
11
16
 
12
17
 
18
+
13
- Workerクラスのインスタンスを破棄するときに
19
+ ただ、Workerクラスのインスタンスを破棄するときに
14
20
 
15
21
  自分自身でdeleteしようとしているように見えますが
16
22
 
@@ -18,7 +24,9 @@
18
24
 
19
25
  Workerクラスのデストラクタでdeleteは無理があります
20
26
 
21
- ※C++にJavaのようなガベージコレクタはありません
27
+ ※C++にJavaのようなガベージコレクタはないので、
28
+
29
+ 参照元がなくなったからと言って勝手にデストラクタが動くことはありません。
22
30
 
23
31
 
24
32