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

判断题 · 答案 B

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

题目

如果一个对象具有另一个对象的性质,那么它们之间就是继承关系。( )

答案:B

解题思维

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

常见错误

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

详细解析(节选)

【考点】面向对象编程|继承 vs 组合|属性与关系

🎯 考纲定位:GESP 六级 C++ 组,面向对象编程(OOP)模块。命题人卡住的是"会写继承语法但分不清关系本质"的盲区——六级不再考语法记忆,而是考对OOP四大关系(继承/关联/组合/聚合)的区分能力。

🧠 解题思维:看到"具有性质→继承"这个箭头,先问自己:继承是语言语法定义的结构性关系(class B : public A),"具有性质"是功能层面的结果,二者不在同一维度。对象A有对象B的属性,可能源于组合(Car有Wheel)、关联(Student关联Teacher)、聚合(Order聚合Item),甚至共享接口实现——这些都不构成继承。正确判断链:功能结果≠特定结构。

🪤 陷阱拆解:命题人把"具有性质"偷换为"继承",利用初学者对OOP关系的模糊认知。绝对化表述"就是"是最大破绽——在面向对象世界里,多个关系可以产生相同功能效果,这是设计原则(优先组合而非继承)。只背结论"继承是has-a"而不理解"继承是is-a"的本质区别,就会掉进这个坑。

🔄 反命题思维:若改成"具有性质则必有组合关系",答案不变(仍错,可能是关联/聚合/继承)。若改成"具有性质则必有关联关系",答案仍错。命题人想考你:"具有性质"是功能结果,而继承是语法结构,二者不能直接划等号。刷到类似题先问:这描述的是is-a还是has-a?前者必有语法定义,后者可源于多种结构。

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