GESP 六级 · GESP 202606 C++ 六级 第 16 题

判断题 · 答案 B · 考点:函数

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

题目

C++ 中构造函数可以声明为虚函数,从而实现运行时多态。

答案:B

考点

函数

解题思维

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

常见错误

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

详细解析(节选)

【考点】构造函数|虚函数

考纲定位:GESP C++ 六级语言基础模块,考查构造函数的继承性规则。命题人把这道题放在这里,就是卡住那些只背"虚函数"概念却不懂构造语法的考生——他们总以为"虚"字加了就能多态,却忘了构造函数是对象诞生的瞬间,多态还没"出生"。

解题思维:看到"虚函数"先想运行时多态,再对比构造函数特性。构造函数属于成员函数,但它的调用时机由对象构造顺序决定,而非虚表机制。关键观察:派生类构造函数隐含调用基类构造函数,不存在"运行时代码选择哪个构造函数"的场景。

陷阱拆解:命题人利用"虚函数"的强记忆点诱导误判。错误选项A设计逻辑:混淆"成员函数可虚"与"构造函数可虚",前者属实后者假。最阴险细节:构造函数虽不能显式标记 virtual,但派生类构造函数会隐式调用基类构造函数,不存在"虚表选择"场景。

反命题思维:若把"构造函数"改为"虚析构函数",命题立刻成立(析构函数必须虚)。若把"虚函数"改为"虚析构函数",命题依然成立。

同考点真题

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