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

拉胡尔·索纳尼斯(Rahul Sonanis)
#include <iostream>

using namespace std;

class Box
{
   public:
      static int objectCount;
}

// Initialize static member of class Box
int Box::objectCount = 0;
麦凯斯

似乎您混淆了变量的声明和定义。

该声明只是告诉编译器一个名称。因此,在您的情况下:

class Box
{
    public:
        static int objectCount;
};

这只是告诉编译器有一个名为name的变量objectCount
但是现在您仍然需要一个定义。

int Box::objectCount = 0;

简化的定义是链接器所需要的。
因此,作为简单规则,必须在类中声明静态成员变量,然后在其外部进行定义。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章