类的静态成员函数既能访问类的静态数据成员,也能访问非静态数据成员。
C++类:构造函数(对象创建时调用)、析构函数(对象销毁时调用)、虚函数(实现多态)。构造函数不能为虚。
构造函数不能是虚函数(虚表在构造函数完成后才建立)。析构函数可以且通常应该为虚函数(防止内存泄漏)。
【考点】类的静态成员|静态成员函数|类的成员函数
1. 🎯 考纲定位 GESP 六级 C++ 第 8 章"面向对象程序设计”,考点为"类的静态成员"、"静态成员函数"、"类的成员函数"。命题人想卡住考生对"静态函数是否拥有 this 指针"的本质理解,而非仅仅背诵"静态函数能访问静态成员"。
2. 🧠 解题思维 看到"静态成员函数"先联想"没有 this 指针"。没有 this 意味着无法访问非静态数据成员(实例变量)。非静态成员只能作为参数传递。静态成员函数可以访问静态数据成员。因此,陈述"既能访问...也能访问..."是错误的。
3. 🪤 陷阱拆解 B 选项利用的是"静态函数能访问静态成员"这一正确但片面的记忆。命题人把"访问静态成员"偷换成"访问非静态成员",再用"既能...也能..."这种绝对化表述包装。如果你只背结论,就会忽略"非静态成员必须通过参数访问"这个关键细节。
4. 🔄 反命题思维 如果把"也能访问非静态数据成员"改成"只要通过参数就能访问",答案就变成正确。或者把"静态成员函数"改成"普通成员函数",答案就变成正确。刷到类似题时,先问自己"命题人想考我什么"。