当我们声明一个成员变量static时,它在该类的所有实例之间共享.我听说你应该想到属于类本身的变量,而不是任何实例.这让我们初始化变量而不实例化类的任何对象,这是有道理的.
class Something
{
public:
static int s_nValue;
};
int Something::s_nValue = 1;
Run Code Online (Sandbox Code Playgroud)
但是为什么我们允许初始化私有静态成员?
class Something
{
private:
static int s_nValue;
};
int Something::s_nValue = 1;
Run Code Online (Sandbox Code Playgroud)
当我们谈论静态成员时,私人甚至意味着什么?
是的,它确实意味着什么.请考虑以下示例,该示例会抛出编译器错误,因为该成员是private.能够初始化私有变量与能够从任何上下文更改它不同.
class Something
{
private:
static int s_nValue;
};
int Something::s_nValue = 1;
int main(){
Something::s_nValue = 2; // Compiler error here.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1283 次 |
| 最近记录: |