コンストラクタ

出典: YKAwiki

概要

クラスからオブジェクト(インスタンス)が生成される時に呼ばれる関数です。

ポインタか否かで呼ばれるタイミングが異なります。

コンストラクタの例

たとえば以下のようなHogeというクラスがある場合、

[Hoge.h]
class Hoge{
    Hoge();
    ~Hoge();
};

Hoge()がコンストラクタ、~Hoge()デストラクタになります。

コンストラクタの定義は次のようになります。

[Hoge.cpp]
Hoge::Hoge(){
}

メンバ変数の初期化などに使いましょう。

呼び出し例

通常のインスタンスの場合、宣言(生成)されたその瞬間に呼ばれます

[somewhat.h]
Hoge hoge;
Hoge piyo = Hoge();

上の場合いずれもこの瞬間にコンストラクタHoge()が呼ばれています。

ポインタを使っている場合、newした瞬間に呼ばれます

[somewhat.cpp]
Hoge* hoge;
hoge = new Hoge(); //←ここでやっと呼ばれます。

ポインタでの利用は、宣言と初期化のタイミングをずらしたいときなどに便利です。