|
HOGE hoge;あるいは、クラスを動的確保して使う方法もある。
HOGE *hoge = new HOGE;そしてプログラマーは、hoge というインスタンスについて操作をすることになる。
HOGE hoge;このように、ローカル変数としてクラスを実体宣言した場合、{}の中つまりそのブロック構造の中がスコープであり、そのスコープが終了した時点で、一般の変数と同様にインスタンスの寿命が切れる。寿命が切れた時点で、クラスのデストラクターが呼び出される。if文、for文、while文などが{}でブロックになるほか、関数そのものも{}でブロックである。また、特に何もなく{}でブロックを作ることもできる。
HOGE *hoge = new HOGE;一方、このようにクラスをnewで動的確保した場合、明示的にdeleteするまで寿命は継続する。deleteした時点でインスタンスの寿命が切れてデストラクターが呼び出されるが、deleteしない場合、プログラムが終了してもデストラクターが呼ばれることはない。