整数の配列を、プログラムで何度も動的に割り当てる必要があるとしょう。その場合は、
そのコードを何度も繰り返して書くより、(以下のように)その機能をDynamicArrayクラス
にカプセル化するのが合理的だろう。

このDynamicArrayクラスで、50個の要素を持つ動的配列を作るには、次のコードを使う。

前述したようにnewの呼び出しには、それに対応するdeleteの呼び出しが必要である。
DynamicArrayはコンストラクターで配列を割り当てるが、それに対応するdelete[]が、
どこにもない。したがって、scoresオブジェクトがスコープの外に出たら、リーク、メモリリークが発生する。
解決策は、デストラクター(destructor)と呼ばれる、もう1つの特技なメンバー関数を使うことだ。
デストラクターは、オブジェクトを破棄(destroy)する時に自動的に実行されるメンバー関数だ。スタック上に割り当てられるオブジェクトでは、
そのオブジェクトがスコープの外に出る時に発生する。動的に割り当てたオブジェクトでは、そのオブジェクトのdelete
を呼び出せば、デストラクターが呼び出される。
デストラクターは、常にクラスと同じ名前を持つが、その前に1個のティルダ(~)を書く。
だからDynamicArrayの場合、次のものがデストラクターである。

このデストラクターを追加すると、scoresがスコープの外に出る時、デストラクターが
mArrayの割り当てを解除してメモリリークを防ぐ。
【戻る】