类中的数组初始化

时间:2014-03-19 22:55:59

标签: c++ arrays class

我尝试创建一个日期类,并希望将数组设置为:

class Date {
private:
    int day;
    int month;
    int year;
    int daysPerMonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
};

编译器给出一个错误,禁止像这样使用数组。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

类成员的数组初始化(就地或使用初始化列表)是C ++ 11中的一项新功能。如果您的编译器支持更新的语言,则可以使用以下语法:

class Date {
private:
    int daysPerMonth[12] {31,28,31,30,31,30,31,31,30,31,30,31};
};

然而,在每月的情况下,它可能有点无意义(假设您只支持公历),因为这种事情往往被声明为{{1} (这些值永远不会改变,不需要多个实例),这将允许使用早于C ++ 11的语言功能轻松初始化数据。 例如

static const