どうも,クラゲルです.
今日は気づいたことのちょっとしたメモ.
メンバ関数内で宣言された静的変数は,インスタンスごとに生成されるのではなく
クラスで共有するらしい.
静的メンバ変数の関数内でしか使えないバージョンみたいな.
#include <iostream>
class A
{
public:
void Test(void);
};
void A::Test(void)
{
static i=0;
std::cout << i++ << std::endl;
}
int main()
{
A a,b,c;
a.Test();
b.Test();
c.Test();
a.Test();
return 0;
}
結果
0
1
2
3
おー,ちゃんとクラスで共有されてる.
C言語の時みたいに使うには静的変数をメンバ変数にするしかないみたい.
[0回]
PR