冒号后面为类的初始化列表,变量间用”:”隔开。
class MyExample {
public:
int a;
float b;
//构造函数初始化列表
MyExample(): a(0),b(8.8)
{}
//构造函数内部赋值
MyExample()
{
a=0;
b=8.8;
}
};
ps:
1.C++初始化类成员时,是按照声明的顺序初始化的,而不是按照出现在初始化列表中的顺序。
必须用带有初始化列表的构造函数的情况:
1.成员类型是没有默认构造函数的类。若没有提供显示初始化式,则编译器隐式使用成员类型的默认构造函数,若类没有默认构造函数,则编译器尝试使用默认构造函数将会失败。
2.const成员或引用类型的成员。因为const对象或引用类型只能初始化,不能对他们赋值。