面试题答案
一键面试默认构造函数特点
- 函数体为空:默认构造函数不执行任何初始化操作,函数体是空的。
- 参数列表为空:没有任何参数。
编译器自动生成情况
当类中没有用户定义的构造函数时,编译器会自动生成默认构造函数。
实际应用场景及作用
场景:在使用标准模板库(STL)容器存储自定义类对象时。例如,使用 std::vector
存储自定义类 MyClass
的对象。
作用:当 std::vector
初始化元素或者进行扩容等操作需要创建 MyClass
对象时,若 MyClass
没有用户定义的构造函数,就会调用编译器自动生成的默认构造函数来创建对象,使得 MyClass
对象能够顺利存储在 std::vector
中。 如下代码示例:
#include <vector>
class MyClass {
// 没有用户定义构造函数,编译器自动生成默认构造函数
};
int main() {
std::vector<MyClass> vec;
vec.resize(5); // 这里会调用MyClass的默认构造函数创建5个MyClass对象
return 0;
}