「Protected」の編集履歴(バックアップ)一覧に戻る

Protected - (2012/11/26 (月) 20:41:47) のソース

*継承によるメンバへのアクセス
[[クラス]]の章でアクセス制御について触れましたが
継承を学んだところでもう一度おさらいしておきましょう。

**public
public修飾子がつけられたメンバは
そのクラス
派生クラス
クラスを使う側
のどこからでもアクセスできます。

**private
private修飾子がつけられたメンバはそのクラスからのみアクセスできます。
つまり、継承した派生クラスからはアクセスできないのです。
もちろんクラスを使う側からも見えません。

**protected
まだ触れていない protected というキーワードがあります。
このアクセス範囲は
そのクラスと
それを継承した派生クラス
からのみアクセスできます。
また、継承を何度繰り返しても性質は子に受け継がれます。
 class Person{
     protected:
        string name;
 }

 class Student : public Person{
 }
この例において
Student は nameにアクセスすることができます。
クラスを使う側からはPersonのnameもStudentのnameも private と同様アクセスできません。


**デフォルト
C++では
アクセス修飾子を何も指定せずに定義すると、private として扱われます。
 class A
 {
 	int num;
        void hoge();
 };
この num と hoge() はprivateです。

*問題
**問題1
[[継承]]の章で作成したPersonクラスとStudentクラスにおいて、
メンバ変数を全て protected にせよ。
また、全てprivate にした場合の動きも確認せよ。
目安箱バナー