为什么非常数静态变量需要在类外部初始化?

布拉斯科

我知道非常数静态变量需要在类定义之外进行初始化,但是,这是有原因的吗?

class A {
    static int x = 0 // compile error;
    static int y;
};

int A::y = 0; // fine
拔示巴

本质上,它是因为x存在着独立的数量实例A所创建。

因此,x需要在某个地方定义存储的需求-您不能依赖的实例A来做到这一点,这就是

A::x = 0;

只需一个翻译单元即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么要在声明静态变量之前对其进行初始化

为什么超类中的静态块/静态变量在main之前初始化?

为什么未初始化模板类的嵌入式静态变量?

为什么在类外部用静态变量的重新声明来初始化静态变量?我们不能只初始化它而不是重新声明它吗?

为什么需要在constexpr类中成员初始化非静态数组成员?

构造函数是否需要初始化静态变量?

为什么不能用其他变量的值初始化静态变量?

类静态变量的初始化顺序

类静态变量初始化的规则是什么?

为什么在这里允许使用非const初始化静态变量?

为什么const指针差异不能用作静态变量的初始化程序?

为什么我不能在类中初始化非常量静态成员或静态数组?

静态变量何时初始化?

静态变量的初始化

如何初始化静态变量

静态变量初始化测验

静态变量初始化过程

静态变量初始化java

静态变量初始化?

重新初始化静态变量

静态变量本身的初始化

(为什么)我们可以在初始化时将非静态类成员分配给静态变量?

为什么静态最终变量使用静态方法初始化需要同步?

父级的静态变量是否一定要在子级的静态变量之前初始化?

为什么我需要在TensorFlow中初始化变量?

为什么Final变量不需要在Java的main方法中初始化?

为什么const变量不需要在C中初始化?

为什么引用变量需要在声明时进行初始化

为什么引用变量需要在定义时进行初始化?