C++


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

C++


アクセス修飾子

public
 外部から参照可能
private
 外部から参照不可能
protected
 派生クラスから参照可能,それ以外はprivateと同様

クラス

class CLASS_NAME{
 /* ~~~~ */
}

class SAMPLE1{
 private:
  int a;     //このクラス内のメンバ関数からしかアクセスできない変数
 public:
  int b;     //外部(mainとか)からも自由にアクセスできる変数
  CLASS_NAME(){ //コンストラクタ
   a=0;b=0;c=0;
  }
  CLASS_NAME(int a0,int b0,int c0){ //引数付きコンストラクタ
   a=a0;b=b0;c=c0;
  }      

  void set_a(int temp){ //aを書き換えるためのメンバ関数
   a = temp;
  }
 protected:
  int c;     //外部からはアクセスできないけど,派生クラスからはアクセスできる
};
クラス内からはa,b,c全てにアクセスできる.

使い方
main(){
 SAMPLE1 test1;           //引数なしコンストラクタで初期化
 SAMPLE1 test2 = SAMPLE();     //引数なしコンストラクタで初期化
 SAMPLE1 test3(1,2,3);       //引数付きコンストラクタで初期化
 SAMPLE1 test2 = SAMPLE(1,2,3); //引数付きコンストラクタで初期化

 test1.b = 255;  //bの値は直接書き換えられる (publicなので)

//test1.a = 100;   //aの値は直接書き換えられない(privateなので) 
 test1.set_a(100); //aを書き換えるにはSAMPLE1クラスのメンバ関数を使う
 
}
mainからはpublicのbにのみアクセスできる.
aはprivate,cはprotectedなのでmainからは直接アクセスできない.

継承

class SUB_CLASS:public SUPER_CLASS{
    /*~~~~*/
};

class SAMPLE2 : SAMPLE1{
 private:
  int d;
 public:
  SAMPLE2():SAMPLE2(){ //コンストラクタ
   d=0;
  }
  SAMPLE2(int a0,int b0,int c0,int d0):SAMPLE2(a0,b0,c0){ //引数付きコンストラクタ
   d=d0;
  }
};

SAMPLE2クラスからb,cにアクセス可能,親クラスのaはprivateなのでアクセスできない.







ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。