GESP 八级 · GESP 202606 C++ 八级 第 14 题

选择题 · 答案 C

← 整套速查表 GESP 八级 全部真题

题目

在 C++ 中,关于类的继承和构造、析构顺序,下列说法正确的是( )。

答案:C

解题思维

C++类:构造函数(对象创建时调用)、析构函数(对象销毁时调用)、虚函数(实现多态)。构造函数不能为虚。

常见错误

构造函数不能是虚函数(虚表在构造函数完成后才建立)。析构函数可以且通常应该为虚函数(防止内存泄漏)。

详细解析(节选)

【考点】类的继承|构造与析构顺序|访问权限

1. 🎯 考纲定位 GESP 八级「面向对象程序设计」模块核心考点,也是本级别唯一专门考察继承生命周期顺序的题目。命题人专抓那些「背会语法但不懂初始化与清理顺序」的考生——基类必须先构造、派生类后构造,基类后析构、派生类先析构,是区分真懂与假懂的试金石。

2. 🧠 解题思维 C++ 对象构造时先初始化基类成员(基类构造),再初始化派生类成员(派生类构造);销毁时相反。这源于基类数据必须先就位,派生类才能使用,因此 C 正确。该规则对任意继承链都成立,是面向对象语言的生命周期铁律。

3. 🪤 陷阱拆解 A 错:private 成员永远只在本类可访问;B 错:私有继承下基类 protected 成员会变为派生类的 private,不会变 public;D 错:析构函数调用顺序与构造相反,先派生后基类。这些是命题人利用「继承修饰符与访问权限关系」设下的经典坑,学生若只背结论就会掉进去。

4. 🔄 反命题思维 若把「私有继承」改成「公有继承」,B 选项的结论将变为真;若把「创建对象」改成「调用虚函数」,则考察的是虚析构与多态。刷到同类题先问:「这里考的是继承类型还是构造顺序?」

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断