class Stock
{
private:
std::string company;
const int Month = 12;
double costs[Month]; //报错
long cost = Month; //正确
...
};
上面是代码,下面是VS2017的报错,C++ Primer Plus对这个问题的解释没有看太懂。书上的原话是“在创建对象前,将没有用于存储值的空间。”
由于目前知识有限,我的理解是认为问题是因为编译器在编译该类时并没有创建对象实例,因此Month的值相当于是未知(不知道实际情况是不是这样),所以在此处报错;而下面一行没有报错,我的理解是cost=Month=12,这是合理的(还是不知道实际情况是否如此)。