クラスの中のchar型変数の初期化
C++でchar型の変数をメンバーに含むクラスを作りました。
先ほどこちらで助けていただいてエラーからは回避できたのですが
雇用者の名前だけが文字化けして表示されます。
どうも初期化がうまくいっていないようです。
empNameを見ると0x0012ff34 ""などという訳の分からない値になっています。
でもpublicのempName()の括弧の中に何か入れるとすぐに怒られますし…。
すみません、助けてください。
class TimeOff
{
private:
int idNum;
enum { size = 20};
char empName[size]; //雇用者の名前
float maxSickDays;
float sickTaken;
float maxVacation;
float vacTaken;
float maxUnpaid;
float unpaidTaken;
public:
TimeOff() : idNum(0),
empName(),
maxSickDays(0.0),
sickTaken(0.0),
maxVacation(0.0),
vacTaken(0.0),
maxUnpaid(0.0),
unpaidTaken(0.0)
{ }
TimeOff(int iN,
char eN[],
float mS,
float sT,
float mV,
float vT,
float mU,
float uT)
: idNum(iN),
empName(),
maxSickDays(mS),
sickTaken(sT),
maxVacation(mV),
vacTaken(vT),
maxUnpaid(mU),
unpaidTaken(uT)
{ }
void showndays() const
{ cout << idNum << "\t"
<< empName << "\t" //ここだけが文字化け
<< maxSickDays << "\t" //他の変数はそのまま表示される
<< sickTaken << "\t"
<< maxVacation << "\t"
<< vacTaken << "\t"
<< maxUnpaid << "\t"
<< unpaidTaken << endl; }
};
int main()
{
TimeOff emp1(1000, "Anna Balyo", 200, 30, 20, 10, 40, 10);
emp1.showndays();
return 0;
}
お礼
やはりグローバル変数にするしかないのですか・・・