我有以下内容:
class base
{
public
void f();
...
}
void base::f()
{
static bool indicator=false;
.....
if(!indicator)
{
...
indicator=true;
}
}
class D:public base
{
...
}
Run Code Online (Sandbox Code Playgroud)
在我的主()我有:
main()
{
// first instance of D
base *d1 = new D();
d1->f();
....
// 2nd instance of D
base *d2 = new D();
d2->f();
}
Run Code Online (Sandbox Code Playgroud)
我发现第一次实例化D并调用d1-> f()时,静态变量设置为false.但第二次我调用d2-> f()代码甚至没有点击"静态bool指示器=假"; 它保持为真(从d1-f()的第一遍开始)这正是我想要的行为,但我不明白为什么会这样.有人可以解释一下发生了什么.提前致谢