class CExample {
public:
int a;
float b;
//构造函数初始化列表
CExample(): a(0),b(8.8) {}
//构造函数内部赋值
CExample()
{
a=0;
b=8.8;
}
};
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式
以下情况必须使用初始化列表:
1.成员类型是没有默认构造函数的类。若没有提供显示初始化式,则编译器隐式使用成员类型的默认构造函数,若类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。
2.const成员或引用类型的成员。因为const对象或引用类型只能初始化,不能对他们赋值。
初始化列表的成员初始化顺序:
C++初始化类成员时,是按照声明的顺序初始化的,而不是按照出现在初始化列表中的顺序。
析构函数的顺序和类成员定义的顺序是相反的