一、普通成员变量
普通成员变量,不能在类声明中初始化。
二、静态成员变量
即类成员变量。这种变量也不能在类声明中初始化。
三、静态常量整型数据成员
静态常量整型数据成员可以在类的声明中初始化,而且只有这种变量可以在类的声明中定义。
class Base
{
public:
Base(){};
private:
int a;
int b;
static const int sc_int = 10; //static const
};
第二点说的静态成员变量不可以在类声明中初始化,常量整型也不可以。只有静态常量整型成员才可以在类声明中初始化,这与Java不同,需要特别注意。
四、非静态的常量如何初始化?
只能在构造函数的初始化列表中初始化。
class Base
{
public:
Base():basec(10) // 在初始化列表初始化basec的值
{
//basec = 10; // const变量,不能赋值
}
private:
int a;
int b;
const int basec;
};