初始化列表
用途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;
............
}