C++講座5回は継承についてです

今回のサンプル
&ref(inheritance.zip);

クラスのメンバ変数やメンバ関数を引き継いで
新たにメンバ変数やメンバ関数を追加できる機能を継承と呼びます
継承元のクラスを基底(スーパー)クラス、
継承したクラスを派生(サブ)クラスと呼びます

基底クラスのメンバ変数やメンバ関数を変更すると
そのクラスを継承した派生クラスのメンバ変数とメンバ関数も変更されます。
つまり、共通機能の修正が基底クラスを変更するだけで対応できるので楽になります。
つまり、共通機能の修正が基底クラス側を変更するだけで対応できるので楽になります。

継承のやり方は

 class 基底クラス名
 {
 public:
	int HP;
	void LevelUp();
 };
  
 class 派生クラス名 : public 基底クラス名
 {
 public:
 };

のようになります。

今回のサンプルです

 //main.cpp
 #include <iostream>
 
 //-------------------Player----------------------//
 
 class Player
 {
 public:
	int HP;
	void LevelUp();
 };
 
 void Player::LevelUp()
 {
	HP += 100;
 }
 
 //-----------------Magician----------------------//
 
 class Magician : public Player
 {
 public:
	int MP;
	void Magic();
 };
 
 void Magician::Magic()
 {
	printf("魔法使い−魔法:ファイアー\n");
 }
 
 //-----------------Knight------------------------//
 
 class Knight : public Player
 {
 public:
	void Skill();
 };
 
 void Knight::Skill()
 {
	printf("騎士−必殺:兜割り\n");
 }
 
 //------------------------------------------------//
 
 int main(){
 
	Magician magician;
	magician.HP = 100;	// Player共通変数
	magician.MP = 10;	// Magician独自変数
	magician.LevelUp();	// Player共通変数
	printf("魔法使い HP = %d MP = %d\n",magician.HP,magician.MP);
	magician.Magic();	// Magician共通変数
 
	Knight knight;
	knight.HP = 200;	// Player共通変数
	knight.LevelUp();	// Player共通機能
	printf("騎士 HP = %d\n",knight.HP);
	knight.Skill();		// Knight独自機能
 
	return 0;
 }

#vote(ok、次行こ、次[0],(;^ω^)?[0])

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS