-
成员初始化表的作用如下:
成员初始化表用在类的构造函数中,对类的数据成员等初始化。其实它的作用还不仅如此。
- 对类的数据成员初始化例如:
class A
{
public:
A(int a,int b): x(a),y(b){}//这就是成员初始化表
......
private:
int x;
int y;
};
- 如果类A由类B派生出来,那么类A的构造函数可以对类B的数据成员初始化,这是要把B的构造函数列在成员初始化表中。
class B
{
public:
B(int c){z=c;}
......
private:
int z;
};
class A:public B
{
public:
A(int c,int a,int b): B(c),x(a),y(b){}//这就是成员初始化表
......
private:
int x;
int y;
};
- 如果类A中含有类C的对象,那么可以在类A的构造函数中对类C的对象初始化。这时要把对象列在初始化表中,而不是把C的构造函数。
class C
{
public:
C(int c){z=c;}
......
private:
int z;
};
class A
{
public:
A(int c,int a,int b): cc(c),x(a),y(b){}//这就是成员初始化表
......
private:
int x;
int y;
C cc;//C与A具有组合关系,这里cc是子对象。
};
- ps:参数初始化表先对基类初始化,再对子对象初始化,最后对自己的数据成员初始化。
2.参数初始化表的一般形式
类名(参数列表):基类名(参数列表),子对象名(参数列表),数据成员名(参数){}