在 C++ 中,类的静态成员变量只能被该类对象的成员函数访问。
C++类:构造函数(对象创建时调用)、析构函数(对象销毁时调用)、虚函数(实现多态)。构造函数不能为虚。
构造函数不能是虚函数(虚表在构造函数完成后才建立)。析构函数可以且通常应该为虚函数(防止内存泄漏)。
【考点】C++ 静态成员 | 成员函数访问权限
GESP 六级 C++ 语法模块必考。命题人卡住学生"静态成员属于类而非对象"的认知偏差,让很多人误以为静态成员只能通过对象访问。
静态成员是类级别的变量,不需要对象实例即可访问。正确访问路径有三:类名直接访问(如ClassName::staticMember)、对象访问(如obj.staticMember)、成员函数访问(如obj.func())。非成员函数若声明为 friend 也可访问。因此"只能被成员函数访问"是错的。
陷阱在"只能"二字。命题人刻意制造绝对化表述,利用学生"静态成员必须通过对象"的惯性思维。若只记结论不推敲语言,会误判为正确。
命题人若把"只能"改成"可以",题目就变成"静态成员可以被成员函数访问",答案为正确。刷到类似题,先问"绝对化词"是否成立。