构造函数跟析构函数默认自动调用其他的必须显示调用是吗
1. 构造函数 / 析构函数
这两个是 自动调用基类的:
-
构造函数:当你创建子类对象时,会先自动调用基类构造函数,再调用子类构造函数。
-
如果你不写,默认会调用基类的 无参构造函数。
-
如果基类没有无参构造函数,你必须在子类构造函数初始化列表里显式调用:
-
-
析构函数:当子类对象销毁时,先调用子类析构函数,再自动调用基类析构函数,这也是保证释放顺序正确的机制。
所以构造/析构 不需要你手动写 Base::~Base(),编译器会自动插入调用。
2. 普通成员函数(包括虚函数)
这里不会自动调用基类实现,子类覆盖后就“替换”掉了父类版本。
要想复用父类逻辑,必须手动写:
✅ 总结:
-
构造函数 / 析构函数:自动调用基类的(但构造时如果父类没有默认构造函数,就必须手动指定)。
-
普通函数(包括虚函数):不会自动调用基类,想用必须显式调用。
浙公网安备 33010602011771号