2009年10月15日木曜日

C++のアクセス制御

C++でクラスに必ず出てくる,
public,private,protected,virtualあたりを
自分なりにまとめてみた.継承に注目して書いてみる.
間違っていたら是非指摘していただきたい.

publicで継承
基本クラスのアクセス制御が、そのまま派生クラスに引き継がれる.
基本クラスのpublicな部分は、派生クラスでもpublicのまま.
基本クラスのprivateもprotectedな部分もそのままになる.

privateで継承
基本クラスを全部privateにしてしまう.
派生クラスを呼び出す外部からは、アクセスできない.ただし,
派生クラス自身から基本クラスのpublicな部分へのアクセス自体は可能である.

基本クラスのprotected
基本クラス自身と派生クラス以外からはアクセスできない.

virtual
B <- d1 <- D(Bが間接基本クラスで,Dが派生クラス)
B <- d2 <- D
と継承すると,DからBを用いようとすると,どちらから継承した
Bを用いるのか分からず,エラーになる.それを避けるために,
virtualをつけて,ひとまとめにして曖昧さを避けることができる.

0 件のコメント:

コメントを投稿

フォロワー

ページビューの合計