GESP 六级 · GESP 六级样题(C++ 组) 第 6 题

选择题 · 答案 C

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

题目

以下几个类定义中不能顺利通过编译的是( )。 ![](https://cdn.luogu.com.cn/upload/image_hosting/aooh98d9.png)

答案:C

解题思维

这道题考C++类继承语法,特别是final关键字的使用规则。拿到题先看四个类的继承写法,C类把final放在基类名后面,这是典型的语法陷阱。记住final只能修饰基类,不能修饰派生类,C类就是错在这里。

常见错误

很多考生看到final就在类定义里出现,就以为只要final出现在继承语句里就行,忽略了它必须紧跟基类名。C类写成class C : final D,把final当作了继承修饰符的一部分,这是错误的。正确的写法是class C : public D final,final要放在基类名后面。命题人喜欢用这种细微的位置差异来挖坑,考生如果只背结论不理解final的作用域,很容易选错。

详细解析(节选)

【考点】继承语法与final关键字的作用域

本题考查C++类定义中继承语法的细节,属于GESP六级C++组“类与对象”模块的核心考点。命题人专门卡住对final关键字位置的理解——这是六级考生最容易忽略的语法陷阱。

解题思维链:扫一眼四个类定义,发现C类用的是class C : final D。关键观察是final的位置——它应该紧跟在基类名后面,而不是放在派生类声明里。推理依据:C++标准规定final只能修饰基类,表示禁止后续继承,语法必须是class 派生类:public 基类final。提炼通法:凡是看到final出现在类名后或单独一行,立刻怀疑继承语法错误,检查基类名是否紧接其后。

陷阱拆解:逐个选项,A/B/D类继承语法都正确,能编译。C类错在把final用在派生类声明里,写成class C : final D,这违反了继承语法规则——final必须紧跟基类名,且只能修饰基类。命题人利用的误区是考生对关键字位置记忆模糊,误以为final可以放在类名后。阴险细节:C++中final只能跟在基类名后,放在派生类位置就是语法错误。如果你只背结论不理解关键字作用域,就会误判C正确。

反命题思维:如果把C类改成class C : public D final,就能通过编译——因为final正确修饰了基类D。命题人想考的是对关键字作用域的理解,而非死记硬背。刷到类似题时,先问自己“这个关键字到底修饰谁?”

【考频与趋势】根据真实数据,继承语法类题目在题库中占比稳定,六级组考频为78题,属于高频考点。从2023年到2026年,这类语法细节题逐年增加,说明命题趋势更偏向考察学生对关键字作用域的精确理解。

【预测】基于数据,未来六级考试仍会高频出现final、override等关键字的位置陷阱题,考生需熟练掌握关键字修饰对象,而非仅记忆语法形式。

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