クラスには、インスタンスが作られた時に1度だけ実行される「コンストラクタ」と、
インスタンスが削除される時に1度だけ実行される「デストラクタ」が、特別な
関数として定義できる。
一般にコンストラクタにはそのクラスインスタンスを初期化するために使用され、
デストラクタは後かたづけ処理を行う。
前述のファイルストリームでは、ファイルをオープンしたり
クローズしたりする関数を呼び出さなくても良かった。これはコンストラクタでファイルを
オープンし、デストラクタでファイルをクローズしていたからである。
コンストラクタの関数名はクラス名と同じ名前で、引数をとることはできるが、
戻り値はない。デストラクタの関数名はクラス名の前に「~」を付けたもので、引数も
戻り値もない。
class TestClass{
public:
TestClass(); // ←コンストラクタ
TestClass(int); // ←引き数付きコンストラクタ
~TestClass(); // ←デストラクタ
int getSize();
char* getFileName();
protected:
int size;
char* filename;
};
|