哪些情况只能用 initialization list,而不能用 assignment
- const 和 reference类型成员变量,由于只能被初始化而不能做赋值操作,因此只能用初始化列表
- 类的构造函数需要调用基类的构造函数时
- 数据成员是对象,并且这个对象只有含参数的构造函数,没有无参数的构造函数
class Base {
private:
int a;
public:
Base(){}
Base(int i): a(i){}
void printA(){
cout << "a = " << a << endl;
}
};
class D: public Base{
private:
int b;
public:
D(int x, int y): Base(x){
b = y;
}
void printB(){
cout << "b = " << b << endl;
}
};
struct CLS {
int m_i;
CLS(int i): m_i(i) {}
CLS() {
CLS(0);
}
};
struct CLS {
int m_i;
CLS(int i): m_i(i) {}
CLS(): CLS(0){}
};