GESP 七级 · GESP 202312 C++ 七级 第 4 题

选择题 · 答案 C · 考点:函数

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

题目

C++ 语言中,下列关于关键字 static 的描述不正确的是( )。

答案:C

考点

函数

解题思维

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

常见错误

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

详细解析(节选)

【考点】静态成员函数|静态数据成员|静态全局对象生命周期

🎯 考纲定位 本题考查GESP C++七级《面向对象编程》模块中static关键字的深层语义。命题人卡住的是大量考生对static成员函数、static数据成员、static全局对象三者的混淆——七级不再满足于知道"static成员函数没有this指针",而是要求理解"static成员函数无法访问非静态成员"以及"static数据成员属于类而非对象,其访问权限由类成员修饰符决定"这两个易错点。

🧠 解题思维 看到static要分三条线想:1)修饰成员函数时,函数属于类,被调用时不产生对象实例,因此无法访问非静态成员(无this);2)修饰数据成员时,每个类只有一个实例,所有对象共享,且其地址是唯一的;3)修饰全局变量时,存储期变为静态,初始化时机在main前,析构在main后。做题时抓住"唯一地址"和"访问权限"这两个关键词判断选项。

🪤 陷阱拆解 A正确:static修饰成员函数,属于类,无需对象即可调用。B正确:const static成员虽在类中声明,但必须在类外初始化(类内只能声明,且不能赋初值)。C错误:static成员地址唯一,但"都可以访问"是绝对化表述——若a是private的static成员,外部无法访问,命题人用"都可以"偷换概念。D正确:静态全局对象在main前初始化、main后析构,这是C++标准规定的存储期行为。最阴险的细节是C中"都可以访问",忽略访问修饰符。只背"static成员有唯一地址"而不理解访问控制的学生必掉坑。

🔄 反命题思维 若把C改成"若a是类A的静态成员(不限常量),则a的地址是唯一的",答案就变成D了。刷到static相关题,先问自己:"考的是成员函数的this缺失,还是数据成员的访问权限,还是全局对象的存储期?"

同考点真题

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