GESP 六级 · GESP 202406 C++ 六级 第 23 题

判断题 · 答案 A

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

题目

在 C++ 中,静态成员函数只能访问静态成员变量。

答案:A

解题思维

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

常见错误

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

详细解析(节选)

【考点】静态成员访问规则|类对象模型|this 指针机制

六级《面向对象》模块核心考点。命题人专卡“静态成员函数与成员变量的访问权限关系”——80% 考生误以为静态函数能访问任意成员,实则它因无 this 指针,只能直接访问静态成员变量。

解题链:见“静态成员函数”先想“无 this 指针”;见“访问成员”先想“变量是否属于类而非对象”。推理依据:C++标准规定静态成员函数是类作用域函数,不绑定具体对象,因此无法通过 this 访问非静态成员变量。通法:所有涉及静态成员的题,先问“函数有无 this 指针”,再问“变量是否属于类”。

陷阱拆解:A 选项“只能访问静态成员变量”看似绝对,实则精准。陷阱在于混淆“直接访问”与“间接访问”——若静态函数接收对象参数,可间接访问非静态成员,但那不属于“直接访问”。命题人利用“泛化思维”设套,让考生误以为“能访问非静态成员”即“能直接访问”。记住:静态成员函数的 this 指针为 null,无法隐式访问非静态成员。

反命题视角:若将“静态成员变量”改为“非静态成员变量”,答案变 B;若加“通过对象参数”条件,则 A 不成立。刷到“成员函数访问权限”题,先问“函数有无 this 指针”——这是命题人埋下的核心判断锚点。

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