面试真题

C++ · 中等 · 百度

C++什么时候生成默认的构造函数?

中等 C++ 🎤 百度
参考答案
编译器在需要时合成默认构造函数(无参):1.类有虚函数(需初始化vptr);2.有虚继承(需设虚基类指针);3.基类无默认构造或默认不可访问;4.成员对象无默认构造。若用户已定义任意构造函数,编译器不再合成默认版(可用=default显式要求)。普通空类在创建对象时被视为有trivial默认构造,但不一定显式生成代码。合成构造仅负责调用基类/成员默认构造及设虚表,不做用户初始化。
题目整理自公开面经,答案由校招宝自研生成,仅供参考