在创建类作用域内的常量时,你可能以为这样可行:
class A
{
private:
const int Months = 12 ;
double consts[Months] ;
}
其实这是个错误用法,因为类只是提供对象的创建方式,并不能创建对象,因此在A对象没有被申明前,Months是不会通过编译的,因此consts数组不知道Months是什么。
目前有两种方式可以解决这个问题:第一种方式申明枚举常量
class A
{
private:
enum {Months = 12};
double consts[Months] ;
}
第二种方式申明静态变量(静态变量是存储在静态地址中,和类无关)
class A
{
private:
static const int Months = 12 ;
double consts[Months] ;
}