// ( r20.C ) // 静的変数の例 // #include class Vector { static int NUM ; // 注目、静的変数はスタティック変数とも言う int x,y ; private: void get_xy() { cout << "X,Y : " << x << " " << y ; } void get_num() { cout << " Num : " << NUM << "\n" ; } public: Vector( int a=0,int b=0 ) { x = a ; y = b ; } void set( int i=0 ) { NUM = i ; } void get() { get_xy() ; get_num() ; } } ; main() { Vector a1( 1,1 ) ; a1.set( 10 ) ; a1.get() ; Vector a2( 2,2 ) ; a2.get() ; Vector a3( 3,3 ) ; a1.set( 20 ) ; a3.get() ; Vector a4( 4,4 ) ; a4.get() ; } /* [結果] X,Y : 1 1 Num : 10 X,Y : 2 2 Num : 10 X,Y : 3 3 Num : 20 X,Y : 4 4 Num : 20 [参考] 1) Vector a3(3,3) ; a1.set(20) ; に注目、NUM 変数は Vector クラスの インスタンス全てに共通と言うことになる 2) こんなやり方もある ------------------------------------------------------- class Vector { static int NUM ; public: Vector() {} int get() { return NUM ; } } ; int Vector::NUM = 5 ; // ここに注目! main() { Vector a1 ; cout << a1.get() << endl ; // 5 Vector a2 ; cout << a2.get() << endl ; // 5 } ------------------------------------------------------- */