GESP 六级 · GESP 202312 C++ 六级 第 18 题

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

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

题目

如果某个 C++ 对象(object)支持下标运算符(方括号运算符),则该对象在所对应 class 中以成员函数的形式进行了重载。( )

答案:A

考点

函数

解题思维

这道题考 C++ 运算符重载的语法形式,核心是记住下标运算符重载只能作为成员函数,不能写成友元或全局函数。

常见错误

学生容易把运算符重载的两种形式(成员函数和友元函数)混为一谈,看到‘重载’就以为可以随便选。下标运算符因为要访问类内部状态,C++ 标准强制规定只能是成员函数,命题人就是卡这个细节。

详细解析(节选)

【考点】运算符重载|成员函数定义|C++ 面向对象

C++ 里运算符重载有两种写法:普通二元运算符(+ - * / 等)既可以是成员函数也可以是友元函数;但下标运算符[]比较特殊,它必须写成成员函数,不能是友元,更不能是全局函数。

为什么这么规定?因为下标操作往往要访问类的内部状态,比如数组类要返回第 i 个元素,矩阵类要返回第 i 行第 j 列。只有成员函数能直接访问私有成员,友元虽然也能访问,但下标运算符在 C++ 标准里被强制要求只能用成员函数形式,这是语法层面的硬性规定。

命题人专挑这个细节考六级,五级大纲只要求‘会重载’,六级明确要求‘掌握成员函数重载’。很多人知道重载,但记不清具体语法形式,看到选项里有‘友元函数’就犹豫,结果掉坑里。

拿到题先想:下标运算符在 C++ 里是什么样?答案是 Type operator[](const Type& key),而且必须放在类里面。如果改成‘重载加法运算符必须作为友元函数’,那答案就错了,因为加法运算符完全可以用成员函数。

避坑:别把‘重载’二字当成万能钥匙,下标运算符重载只能作为成员函数,这是 C++ 标准强制要求的——因为下标操作需要访问类的内部状态,只有成员函数能直接访问私有成员。刷到类似题,先问自己:‘这个运算符在 C++ 里是成员还是友元?’

考频趋势:运算符重载在题库里共考过 146 题,覆盖 7 个考试级别(2023-2026);逐年分布:2023 年 21 题、2024 年 42 题、2025 年 47 题、2026 年 27 题、null 年 9 题;分赛事:GESP 五级 52 题、GESP 三级 22 题、GESP 七级 21 题、GESP 六级 21 题、GESP 八级 16 题、GESP 四级 12 题、CSP 入门级 2 题。可以看出六级每年都有稳定出题,2024-2025 年题量明显上升,说明命题人对语法细节的考查越来越细。暂无足够依据预测未来具体题型,但可以预期这类‘运算符重载形式’的判断题仍会高频出现。

同考点真题

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