継承とは、すでにあるクラスを利用して、新しいクラスを作ることです^^
基にするクラスを基底クラス、基底クラスを継承して作ったクラスのことを
派生クラスといいます。
例えば、親クラスとして Food クラスを定義します。
そして、このFoodクラスのメンバに、新たにメンバを追加したVegetableクラス
というものを作りたいとします。
ここで、継承の機能を使えば、Foodクラスのメンバを受け継いだ子クラスが作れるのです。
受け継いだということは、もちろん親クラスのメンバ自身も使用できます。(^^)
少々分かり難いと思いますので、ソースコードで表現してみるとこんな感じになります。
基底クラス(Food)
class Food {
public:
void SetPrice(int price);
int GetPrice( );
private:
int m_price;
};
基底クラスを継承したクラス(Vegetable)
class Vegetable : public Food {
public:
void SetFarmName(const char *farm);
void GetFarmName(char *farm);
private:
char m_strFarmName[32];
};
あるクラスを継承した派生クラスを作るには、派生クラスのクラス名の後に
「: public 基底クラス名」を記述します。
publicのところは、privateやprotectedも記述できますが、ほとんど見かけません(^^;)
おそらく、あまり使うべき場面がないからでしょう。難しくなりますし...
派生クラスのメンバは自分のクラスのメンバ + 基底クラスのとなります。
したがって、派生クラスには書いてないのですが、Vegetableクラスでは
SetPrice()とGetPrice()のメンバ関数を使うことができます(*^^)v
やりますな、継承...
また、派生クラスは、基底クラスからいくつでも作ることができます。
そして、派生クラスを継承して、さらに派生クラスを作るという使い方もできます。
Food クラス - Vegetable クラス - Pumpkin クラス
|
|_ Fruit クラス - Peach クラス
| |_ Orange クラス
| |_ Banana クラス
|_ Meat クラス
//オレンジ、バナナ、とくれば、次はブドウ ロックシード... (*´Д`)
今日の名言
どんな不幸な人生からでも、利口者は何らかの利益を得る。一方、どんな幸福な
人生からでも愚か者は心を傷つけられる。
ラ・ロシュフコー
繁栄は偉大な教師であるが、苦難はさらに偉大な教師である。富は心を豊かにする。
貧苦は心を鍛える。
ウィリアム・ハズリット
敗北は骨を硬く鍛える。敗北は軟骨を筋肉に変える。敗北は人間を不敗にする。
ヘンリー・ウォード・ビーチャー
敗北とは何か。それは教育にほかならない。それは一段と優れた段階に達するための
第一歩なのだ。
ウェンデル・フィリップス
光の存在が物を見えるようにし、また見えなくもしている。けれどたとえこのうえなく気高い
創造物でさえ、暗黒と地上の影がなければ、いつまでも人の目にとまらない。
そして天空の星も見えなくなる。
サー・トーマス・ブラウン