1.何时必须使用成员初始化列表
(1)如果初始化的成员是个引用
这里抛个问题留作后面补充总结的链接:在类中使用引用成员变量的作用?
#include <iostream>
using namespace std;
class A
{
public:
int a;
int b;
int& c;
public:
A(int& num)
:c(num)
{
a = 0;
b = 0;
c = 180;
}
};
int main()
{
int num=1;
A a(num);
cout << num << endl;
}
运行结果:
(2)如果是个const类型的成员
#include <iostream>
using namespace std;
class A
{
public:
int a;
int b;
const int c;
public:
A(int& num)
//:c(num)
{
c = 0;
a = 0;
b = 0;
}
};
int main()
{
}
编译结果:
(3)如果这个类是继承一个基类,并且基类中有构造函数,这个构造函数里边还有参数,即没有默认构造函数
#include <iostream>
using namespace std;
class Base
{
public:
int aa;
int bb;
Base(int a, int b)
{
}
};
class A:public Base
{
public:
int a;
int b;
public:
A(int& num)