面试题答案
一键面试- 创建
Derived
类对象时基类缺省构造函数的调用情况:- 当创建
Derived
类的对象时,在执行Derived
类构造函数的函数体之前,会先自动调用基类的缺省构造函数。这是C++中对象构造的顺序,先构造基类部分,再构造派生类部分。
- 当创建
Derived
类定义了与基类缺省构造函数同名(参数列表不同)的构造函数的情况:- 这并不会产生冲突,因为函数重载允许在同一作用域内存在多个同名但参数列表不同的函数。
Derived
类的这个构造函数与基类的缺省构造函数处于不同的作用域(基类和派生类各自的作用域),所以可以同时存在。
- 这并不会产生冲突,因为函数重载允许在同一作用域内存在多个同名但参数列表不同的函数。
- 明确调用基类的缺省构造函数:
- 在
Derived
类构造函数的初始化列表中,可以明确调用基类的缺省构造函数。例如:
- 在
class Base {
public:
Base() {
// 基类缺省构造函数的实现
}
};
class Derived : public Base {
public:
Derived() : Base() {
// Derived类构造函数的实现
}
};
在上述代码中,Derived
类构造函数的初始化列表Base()
明确调用了基类的缺省构造函数。