我在Parashift上读到了答案,但我需要更详细的解释,为什么编译器不允许在构造函数中定义静态成员变量。
我阅读了Parashift上的答案,但我需要更详细的说明,为什么编译器不允许在构造函数中定义静态成员变量。我在Parashift上读到了答案,但我需要更详细的解释,为什么编译器不允许在构造函数中定义静态成员变量。
我阅读了Parashift上的答案,但我需要更详细的说明,为什么编译器不允许在构造函数中定义静态成员变量。静态成员变量不与类的每个对象相关联,它是由所有对象共享的。如果你在构造函数中初始化,则意味着你正在尝试与类的特定实例相关联。由于这是不可能的,所以是不被允许的。
静态变量不能在任何方法内定义(即使该方法是静态的),但您可以在构造函数外部定义静态变量并在构造函数内部分配值。但是,这样做将使变量对整个类可访问。
1) 静态变量是类的属性,而不是对象的属性。 2) 任何静态变量都会在创建任何对象之前进行初始化。