gpt4 book ai didi

c++ - 在全局函数中初始化静态成员

转载 作者:行者123 更新时间:2023-11-30 02:46:41 25 4
gpt4 key购买 nike

我的代码是这样的:

class myClass{
public:
static int a;
};

void myFunc()
{
int myClass::a = 1;
}

我看到以下编译错误错误 C2655:“myClass::a”:定义或重新声明在当前范围内非法

我进行了以下更改,一切正常。有什么想法吗?

class myClass{
public:
static int a;
};

int myClass::a = 1;
void myFunc()
{
}

最佳答案

逻辑上是这样想的:

如果您从不调用 myFunc(),则 myClass::a 未定义。所以它必须在全局范围内。

在您的第一个代码片段中,您可能会使用 myClass::a,即使没有定义它,所以它是不允许的,并且以前的语法是无效的 C++

关于c++ - 在全局函数中初始化静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23380531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com