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

今回のサンプル
fileinheritance.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;
}
選択肢 投票
ok、次行こ、次 0  
(;^ω^)? 0  

添付ファイル: fileinheritance.zip 241件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-02-26 (日) 11:40:56