1.类里的const成员初始化:
在一个类里建立一个const时,不能给它初值。像
class A
{
public:
};
构造函数初始化表达式
class A
{
public:
};
如果构造函数是在类外定义,则可以这样写:
class A
{
public:
A::A():i(100){}
2.类里的static成员初始化:
类中的static变量是属于类的,而不是属于某个对象,它在整个程序的运行过程中只有一个副本,因此不
能在定义对象时对变量初始化,就是不能用构造函数来初始化。其正确的初始化方式是:
<数据类型><类名>::<静态数据成员名>=<值>,例如
class foo
{
private:
public:
};
int foo::i=100;
这表明:
(1)初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。
(2)初始化时不加该成员的访问权限控制符private,public等。
(3)初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。
3.类里的static const 和const static成员初始化:
class A
{
public:
};
//const int A::i =90; //也可以在这里进行,但不能加static