C++成员初始化列表使用总结

来源:互联网 发布:枪神纪近战武器数据 编辑:程序博客网 时间:2024/06/09 14:11

初始化列表

用途1:继承,基类对象赋值

对于继承对象,构造函数在成员初始化列表中使用类名调用特定的基类构造函数

例子:

BallPlayer::BallPlayer(const char * firstname,const char *secondname,int r):Player(firstname,secondname)

//BallPlayer继承自Player


用途2:包含,组合,包含对象的初始化

Student(const char *str,const double *arr,int n):name(str),score(arr,n)

Student包含成员name(string对象),score(valarray对象)


用途3:const成员变量的初始化

class Data

{

  const int data;

......

}

Data::Data(int a):data(a)

{  ... }


成员初始化列表中,成员初始化的顺序为它们声明的顺序,不是它们在初始化列表中的顺序

例子:

class A

{

private:

   int m_a; //先声明的m_a;

   int m_b;

public:

   A(int i):m_b(i),m_a(m_b){}   //初始化列表中应先给m_a赋值,即将m_b赋给m_a,之后再将i赋给m_b;

............

}