コンストラクタ事情

 C++でコンストラクタを記述している時に発覚した事実。



C++C#と違ってコンストラクタ内でコンストラクタが使えるんだよね」

ということで、

ENEMY::ENEMY( int X, int Y, int Z )
{
    x = X;
    y = Y;
    z = Z;
}

ENEMY::ENEMY( int X, int Y, int Z, int T )
{
    ENEMY( X, Y, Z );

    // ブレイクポイント!
    type = T;
}

こんな感じの記述をしていたんですが、どうも挙動がおかしい。

…何か、オブジェクトとしては生成されているらしいのに、一向に画面に現れない…。





 しかたないので、地道にデバッグしていたら、

上記のコメントの箇所でなぜかx,y,zは初期値*1のままになっていた。

…どうやらコンストラクタ内でコンストラクタは書けても処理されないらしい…。

今までもちょくちょく使っていたはずなのに全く気が付かなかった、おかしいな(汗)




*1:C/C++において、初期値は「不定」。-4.025+e25とかとんでもない値になってる。