来自http://www.learncpp.com/cpp-tutorial/812-static-member-functions/的代码示例:
class Something
{
private:
static int s_nValue;
};
int Something::s_nValue = 1;
Run Code Online (Sandbox Code Playgroud)
此代码编译时没有警告或错误.我不懂为什么.
我们不应该s_nValue因为它是私有的而获得尝试访问的警告吗?或者这些访问说明符不适用于静态成员?
定义s_nValue不是从类外"访问"成员 - 它实际上是它的实现.可以认为这就像成员函数的实际实现一样,如果放在封闭类声明之外的源文件中.
换句话说,访问说明符绝对同样适用于静态成员.