左花括号会导致语法错误

Open curly brace leads to syntax error

本文关键字:语法 错误      更新时间:2023-10-16

我无法将元素初始化为类中的整数数组。为简洁起见,代码被裁剪:

class Update
{
private:
static const int MONTHS_IN_YEAR = 12; // months in a year
static const int dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
};

由于某种原因,在我的类中这样做会导致语法错误,但在主方法中这样做不会产生问题。我不知道为什么它会给我一个错误。提前感谢您的帮助

您需要constexpr才能工作:

static constexpr int dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

然而,你的编译器(visual c++)还不支持这个。因此,必须在类之外初始化它:

const int Update::dayCounts [MONTHS_IN_YEAR] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};