c++ - 在 C++ 中,访问说明符不控制静态成员的可见性吗?

标签 c++ class static

来自 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/

相关文章:

c++ - 使用 g++ 编译动态共享库

c++ - 使用类定义数组创建 C++ 类

class - typescript : unexpected reserved word in PHPStorm

c++ - MacOS X- C++ 中的段错误 11

c++ - 如何使用基于CLR的GUI从.cpp文件调用函数

c++ - 不确定我对 C++ 中函数声明的解释?

c++ - 确定一个 vector 是否是另一个 vector 的子集的有效方法?

python - Enumerate() 函数或类?

C++ - 为什么不能使用 'const' 限定符创建静态成员函数

java - 为什么Java main 方法是静态的?