GESP 六级 · GESP202609 C++ 六级 第 17 题

判断题 · 答案 B

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

题目

下列代码合法,因为派生类可以直接访问基类的私有成员 value 。

class Base {
private:
int value = 10;
};
class Child : public Base {
public:
int get() {
return value;
}
};
答案:B

解题思维

看到题先定位访问修饰符——value 是 private,再看继承关系——Child 公有继承 Base。核心判断依据是 C++ 访问规则:private 成员仅在当前类内可见,派生类无论通过何种继承方式都无法直接访问基类的 private 成员。

常见错误

选项 A 把继承误认为"权限传递",混淆了 protected 与 private 的语义差异;选项 B 看似反直觉,实则考察对访问控制本质的理解——派生类成员函数虽在 Child 内,但访问的是 Base 的私有成员,不在同一作用域。

详细解析(节选)

看到题先定位访问修饰符——value 是 private,再看继承关系——Child 公有继承 Base。核心判断依据是 C++ 访问规则:private 成员仅在当前类内可见,派生类无论通过何种继承方式都无法直接访问基类的 private 成员。

选项 A 把继承误认为"权限传递",混淆了 protected 与 private 的语义差异;选项 B 看似反直觉,实则考察对访问控制本质的理解——派生类成员函数虽在 Child 内,但访问的是 Base 的私有成员,不在同一作用域。

1. 考纲定位

本题考查 GESP 六级 C++ 大纲中"类与对象"模块的访问控制与继承机制。命题人特意用"派生类访问基类私有成员"这一经典陷阱,卡住绝大多数考生对 C++ 访问修饰符作用域的理解——很多人误以为继承就自动获得访问权,却忽略了 private 的本质是"仅当前类可见"。

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