来自 http://www.learncpp.com/cpp-tutorial/812-static-member-functions/ 的代码示例:
class Something
{
private:
static int s_nValue;
};
int Something::s_nValue = 1;
此代码编译时没有警告或错误。我不明白为什么。
我们是否应该在尝试访问 s_nValue
时收到警告,因为它是私有(private)的?或者这些访问说明符不适用于静态成员?
最佳答案
s_nValue
的定义不是从类外部“访问”成员——它实际上是它的实现。如果将其放置在封闭类声明之外的源文件中,则将其视为成员函数的实际实现。
换句话说,访问说明符绝对同样适用于静态成员。
关于c++ - 在 C++ 中,访问说明符不控制静态成员的可见性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9357462/