面试题答案
一键面试#include <iostream>
class Base {
public:
int baseVar;
};
class Derived : public Base {
public:
double derivedVar;
Derived(int baseValue, double derivedValue) : baseVar(baseValue), derivedVar(derivedValue) {}
};
使用初始化成员列表来初始化成员变量有以下原因:
- 效率更高:对于类类型成员变量,初始化列表直接调用构造函数进行初始化,而在构造函数体内赋值则会先调用默认构造函数初始化,然后再进行赋值操作,多了不必要的开销。
- 必须使用初始化列表的情况:对于const成员变量和引用成员变量,只能在初始化列表中进行初始化,因为它们一旦被创建就不能被赋值。
- 语义清晰:初始化列表清楚地表明了成员变量是如何被初始化的,增强了代码的可读性和可维护性。