自分用メモ

まだいろいろと再構成中。

2014年04月

コンストラクターでは・・・

コンパイル以前に「コンストラクターでは戻り値の型を指定できません」と出てしまう場合、しかも実際にはコンストラクターで戻り値の型を指定していない場合、

原因はこのように、うっかりclass定義の}の次の;を忘れているのが原因。

C++でctimeを使おうとするとctime_sを使えと怒られる。

まず、
void t_and_d::show(){
cout << ctime(&systime) << "¥n";
}

みたいに書いてある本のプログラムをそのまま入れると怒られるわけだが、
ctimeをまずはctime_sに置き換えて、なんとか青文字のようにchar tt[26]とかtt, sizeof(tt),を加えても、0しか出力されない。これはここにもあるように、ctime_s自体の戻り値は成功すれば0、しなければ0以外を返すだけだから。
なので、赤文字のようにchar tt[26]の中身を出力してやれば欲しい中身が出てくる。

void t_and_d::show(){
char tt[26];
cout << ctime_s(tt, sizeof(tt), &systime) << "¥n";
cout << tt << "¥n";
}

これを出力するとこんな感じになる。
ctims_s

↑このページのトップヘ