面试题答案
一键面试class AbstractClass {
private:
int memberVariable;
const int constantMemberVariable;
public:
AbstractClass(int value1, int value2) : memberVariable(value1), constantMemberVariable(value2) {}
// 纯虚函数使该类成为抽象类
virtual void pureVirtualFunction() = 0;
};
在构造函数中,初始化memberVariable
和constantMemberVariable
使用初始化列表的方式。原因如下:
- 对于普通成员变量
memberVariable
,使用初始化列表初始化效率更高,因为这样可以避免先默认构造再赋值的过程。 - 对于常量成员变量
constantMemberVariable
,必须使用初始化列表进行初始化,因为常量一旦被定义就不能被修改,只能在定义时初始化,而构造函数体中的赋值操作不是初始化,所以常量成员变量只能在初始化列表中初始化。