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なのでアクセスできない.
最終更新:2008年11月24日 14:24