面试题答案
一键面试class Shape {
protected:
double area;
public:
Shape(double a) : area(a) {}
};
在抽象类构造函数中使用初始化列表是一种良好的编程习惯,原因如下:
- 效率更高:对于成员变量是类类型的情况,使用初始化列表直接调用成员变量的构造函数进行初始化,而在构造函数体内赋值,会先调用成员变量的默认构造函数初始化,然后再进行赋值操作,多了一次不必要的构造和赋值开销。
- 适用于const和引用成员:
const
成员变量和引用成员变量必须在定义时初始化,只能在初始化列表中完成,在构造函数体内无法对它们进行初始化。