gpt4 book ai didi

c++ - 实例方法中的静态变量

转载 作者:可可西里 更新时间:2023-11-01 15:09:41 26 4
gpt4 key购买 nike

假设我有这个程序:

class Foo {
public:
unsigned int bar () {
static unsigned int counter = 0;
return counter++;
}
};

int main ()
{
Foo a;
Foo b;
}

(当然这个例子没有意义,因为我显然将“counter”声明为私有(private)属性,但这只是为了说明问题)。

我想知道 C++ 在这种情况下的行为方式:bar() 方法中的变量“counter”对于每个实例是否都相同?

最佳答案

是的,counter 将在您的可执行文件中的 Foo 类型对象的所有实例之间共享。只要您处于单线程环境中,它就会像共享计数器一样按预期工作。

在多线程环境中,您将遇到有趣的竞争条件来调试 :)。

关于c++ - 实例方法中的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2164095/

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