(1)static成员要在类外初始化:这样的成员是属于整个类的,但非常量,所以可以类外初始化,也可以用静态函数初始化。
class A
{
private:
static int a;
};
int A::a = 0;
(2)const static成员可在类内初始化:这样的成员是属于整个类的常量。
class B
{
private:
const static int b = 3;
};
(3)const成员要在构造函数初始化表中初始化:这样的成员是每个对象中都有的,只不过是常量,所以要在每次构造对象时初始化。
class C
{
public:
const int SIZE;
C(int size)
{
// codes
}
};
C::C(int size), SIZE(size)
{
// codes
}