// ( t4.C ) // オブジェクトの属性値の設定方法 // /*------------------------------------------------------------------------------ Motifのプッシュボタンを考えてみよう。これは何か操作パネルのボタンみたいな ものである。1個1個のプッシュボタンは、色を変えることができるオブジェクトとみ なすことができる。この色のことを、オブジェクトの属性値ということにしよう。 オブジェクトの属性値には、初期値や設定値を考えることができる。初期値はまさに最 初の属性値である。設定値はこれから使う属性値であり、作成オブジェクトの属性値と なる。 void set_color( int ) これから使う色を設定する void chg_color( int ) オブジェクトの色を変更する int get_color() オブジェクトの色を問い合わせる --------------------------------------------------------------------------------*/ #include #define PUSH_COLOR 9 // 初期値の色を外で定義する class Push { static int INT_COLOR ; // 初期値の色 public: static int SET_COLOR ; // 設定値の色 static void set_color( int i ) { SET_COLOR = i ; } static void initialize() { SET_COLOR = INT_COLOR ; } private: int OBJ_COLOR ; // オブジェクトの色 public: Push() { OBJ_COLOR = SET_COLOR ; } void chg_color( int i ) { OBJ_COLOR = i ; } int get_color() { return OBJ_COLOR ; } void show() { cout << OBJ_COLOR << endl ; } } ; // 初期値を設定する。必ず入れる。 int Push::INT_COLOR = PUSH_COLOR ; main() { Push::initialize() ; // 設定値を初期化する。必ず入れる。 Push::set_color(1) ; // これから使う色を設定する Push a ; Push::SET_COLOR = 2 ; /* 関数で設定する方を勧める */ Push b ; Push c ; c.chg_color( 3 ) ; // 設定した色を変更する a.show() ; // 1 b.show() ; // 2 c.show() ; // 3 Push::initialize() ; Push d ; d.show() ; // 9 }