回答編集履歴
1
誤記、表現修正
test
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
delete hoge[i]は配列のi番目にあるポインタ
|
1
|
+
delete hoge[i]は配列のi番目にあるポインタが示す領域の削除で、delete[] hogeは配列そのものの削除なので用途が違います。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
Playerクラスでは bullet は Bullet* 型の BULLET_MAX個から成る固定長の配列ですから、配列そのものはPlayerのインスタンス(つまりthis)のメモリ領域中にあるので、Player(this)が
|
5
|
+
Playerクラスでは bullet は Bullet* 型の BULLET_MAX個から成る固定長の配列ですから、配列そのものはPlayerのインスタンス(つまりthis)のメモリ領域中にあるので、Player(this)が削除されれば同時に削除されるため delete[] hogeは必要ありません。
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
対して、コンストラクタでbullet[i]
|
9
|
+
対して、各要素についてはコンストラクタでbullet[i]に new Bullet でメモリを割り当てているので、開放する際も個々に削除する必要があるため、デストラクタで delete bullet[i] とします。
|