プログラム的な話

構造体のデフォルトコンストラクタは、typedefを使っているとなぜか使えない。


×
typedef struct
{
 int p;
 DATA(){p = 1;}
}DATA;



struct DATA
{
 int p;
 DATA(){p = 1;}
};


理由判明しました。
上記では、まだDATAという構造体は定義されていないので、
DATA()はコンストラクタではなく、ただの関数ということになっているのでした。
名前が先に来ない前に関数がぽつんとあるので、そりゃコンストラクタとして走らんわけですな。