这是个很重要的问题,须知类的声明只不过是告诉编译器这个类的形式,或者说这个类长什么样子,编译器并不给它分配空间。但是当你声明了一个对象的时候情况就不同了,它作为一个独立的实例,必须要有自己的空间,也就是说这个时候它才被分配空间,而各个对象实体又是各不相同的。所以你不可能在类的声明式中的成员上初始化,就像这样:
这与构造函数中的成员初始化列表和在函数中对成员赋值不同。
一般在类中声明常量可以通过两种方式:1、枚举类型,2、static成员。
你可以用枚举类型充当整型常量,因为实质上它就是整型常量的一种替代,而不是声明,更不是定义。Static成员在内存中只有那么一份,并且它也属于类域,所以你可以直接在类的声明式内定义static常量如下:
这一点也决定了static成员用不着在构造函数初始化成员列表中进行初始化工作。