「Protected」の編集履歴(バックアップ)一覧はこちら

Protected」(2017/12/01 (金) 22:05:25) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*継承によるメンバへのアクセス [[クラス]]の章でアクセス制御について触れましたが 継承を学んだところでもう一度おさらいしておきましょう。 **public public修飾子がつけられたメンバは そのクラス 派生クラス クラスを使う側 のどこからでもアクセスできます。 class Person{ public: string name; } **private private修飾子がつけられたメンバはそのクラスからのみアクセスできます。 つまり、継承した派生クラスからはアクセスできないのです。 もちろんクラスを使う側からも見えません。 class Person{ private: string name; } **protected まだ触れていない protected というキーワードがあります。 このアクセス範囲は そのクラスと それを継承した派生クラス からのみアクセスできます。 また、継承を何度繰り返しても性質は子に受け継がれます。 class Person{ protected: string name; } class Student : public Person{ } この例において Student は nameにアクセスすることができます。 クラスを使う側からはPersonのnameもStudentのnameも private と同様アクセスできません。 **デフォルト C++では アクセス修飾子を何も指定せずに定義すると、private として扱われます。 class Sample { int num; void hoge(); }; この num と hoge() はprivateです。 **問題  第1問 [[継承]]の章で作成したPersonクラスとStudentクラスにおいて、 メンバ変数を全て protected にせよ。 また、全てprivate にした場合の動きも確認せよ。 testcounter 合計 &counter(total) 今日 &counter(today) 昨日 &counter(yesterday)
*継承によるメンバへのアクセス [[クラス]]の章でアクセス制御について触れましたが 継承を学んだところでもう一度おさらいしておきましょう。 **public public修飾子がつけられたメンバは そのクラス 派生クラス そのクラスを使う側 のどこからでもアクセスできます。 class Person{ public: string name; } **private private修飾子がつけられたメンバはそのクラスからのみアクセスできます。 つまり、継承した派生クラスからはアクセスできないのです。 もちろんそのクラスを使う側からも見えません。 class Person{ private: string name; } **protected まだ触れていない protected というキーワードがあります。 このアクセス範囲は そのクラスと それを継承した派生クラス からのみアクセスできます。 また、継承を何度繰り返しても性質は子に受け継がれます。 class Person{ protected: string name; } class Student : public Person{ } この例において Student は nameにアクセスすることができます。 そのクラスを使う側からはPersonのnameもStudentのnameも private と同様アクセスできません。 **デフォルト C++では アクセス修飾子を何も指定せずに定義すると、private として扱われます。 class Sample { int num; void hoge(); }; この num と hoge() はprivateです。 **問題  第1問 [[継承]]の章で作成したPersonクラスとStudentクラスにおいて、 メンバ変数を全て protected にせよ。 また、全てprivate にした場合の動きも確認せよ。 testcounter 合計 &counter(total) 今日 &counter(today) 昨日 &counter(yesterday)

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー