回答編集履歴
1
変数の有効範囲について補足
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
|
|