クラスのメソッド内に、static変数を宣言すると、どうやら全てのインスタンスで共有されてしまうようです。
まあ、ちょっと考えれば分かることですが、これが原因で小一時間ハマってしまいました・・・
以下のコードだと、
Test1 = 0
Test2 = 1
と出力されます。
まあ、ちょっと考えれば分かることですが、これが原因で小一時間ハマってしまいました・・・
以下のコードだと、
Test1 = 0
Test2 = 1
と出力されます。
class CTest { public: int test() { static int i=0; if(i == 0) { i=1; return(0); } return(1); } }; int _tmain(int argc, _TCHAR* argv[]) { CTest a,b; printf("Test1 = %dn", a.test()); printf("Test2 = %dn", b.test()); getch(); return 0; }