- 追加された行はこの色です。
- 削除された行はこの色です。
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])