GESP 八级 · GESP 202506 C++ 八级 第 3 题

选择题 · 答案 D

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

题目

下列关于 C++ 类和对象的说法,错误的是( )。

答案:D

解题思维

逐项分析每个选项,利用C++语法规则和算法知识判断正误。注意隐含条件(如整型溢出、栈溢出)。

常见错误

注意题目问的是"错误的是"还是"正确的是",避免看反。选项中若有绝对化表述通常错误。

详细解析(节选)

【考点】类定义与对象实例化|类前向声明

本题直击GESP八级C++基础核心——类与对象的区别。命题人专设此题卡住考生对"类声明"与"对象实例化"的混淆,考察是否真正理解 class MyClass; 仅是前向声明而非对象定义。

逐项分析:A项定义一个int类型常量对象,B项定义一个std::string类型对象,C项定义一个指向函数的指针对象,三者均符合"定义对象"的语义。D项 class MyClass; 是C++类的前向声明,仅告知编译器类名存在,并未分配内存或创建对象,因此不属于"定义对象"的范畴。A项中的const限定符不影响对象的定义性质,它只是给对象赋予了常量属性。

陷阱在于D项的语义偷换——class MyClass; 是类型声明而非对象实例化语句。命题人利用考生对"类"与"对象"概念的模糊认知,将"声明类"伪装成"定义对象"。若仅凭记忆结论而不理解本质,极易误判D为正确选项。命题人设置此陷阱的深层逻辑在于,考生往往将'类'与'对象'混为一谈,却忽略了C++语法中'声明'与'定义'的本质区别。

若将D项改为class MyClass { int a; };或MyClass obj;,则变为定义类或对象,答案随之改变。刷到此类题时,先问自己"命题人到底要区分的是类型声明还是对象实例"。

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