当先锋百科网

首页 1 2 3 4 5 6 7

在创建类作用域内的常量时,你可能以为这样可行:

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] ;
}