class Foo
{
public:
void bar();
};
void Foo::bar()
{
static int n = 0;
printf("%d\n", n++);
}
int main(int argc, char **argv)
{
Foo *f = new Foo();
f->bar();
delete f;
f = new Foo();
f->bar();
delete f;
return 0;
}
い再び上でクラスをINGの 'INGのとnew
' delete
後0
からn
リセット?または、n
は実質的に静的なクラスメンバーです(すべてのインスタンスで同じ参照)。言い換えればクラスメンバ関数内の静的ローカルは、クラスの再割り当て時に存続しますか?
、私は
0 0
または
0 1
を取得する必要がありますか?
これは意味があります。したがって、静的ローカルは、実際にすべてが同じ関数インスタンスを使用しているため、すべてのクラスインスタンスで実際に同じです。 – jgottula