19章 静的メンバ変数
http://www.geocities.jp/ky_webid/cpp/language/019.html
クラス単位で存在する変数を定義することができます。
#include <iostream> class CSample { public: static int m_int; }; int CSample::m_int = 0; int main () { using namespace std; CSample obj1; CSample obj2; obj1.m_int = 100; obj2.m_int = 200; cout << obj1.m_int << endl; cout << obj2.m_int << endl; cout << CSample::m_int << endl; return 0; }
$ main 200 200 200
obj1とobj2とCSampleもどれも同じ値を指しているので、最後に更新した値が表示されるということになります。
結局単なるクラスという名前付きのグローバル変数と同じですね。
クラス内で宣言してるけど、定義はクラスの外でやらないといけないのも結局単なるグローバル変数と考えてOKですよね。