クラスの継承
classには継承という仕組みがあります。
継承を使うことでプログラムの汎用性や拡張性を高めることができます。
又、より少ないコードで処理を実装することが可能になります。
継承の実装
例えば移動処理などを持ったCharacterクラスがあるとします。
クラスにはDamage関数を持っていて呼び出すとライフが1ずつ減っていきます。
- class Character
- {
- public:
- Character(void)
- : m_life(10)
- {}
- void Damage(void)
- {
- m_life --;
- }
- private:
- int m_life;
- };
このCharacterの仕様がプレイヤーと敵も同じ場合、継承を使えば下記のように書けます。
- class Player : public Character
- {
- public:
- // プレイヤーの処理
- };
- class Enemy : public Character
- {
- public:
- // 敵の処理
- };
class名の後に[: public クラス名]と記述すると指定したクラスの関数や変数を引き継ぐ事ができます。
これをクラスの継承と呼びます。
この引き継いだ継承元のクラスはスーパークラスと呼ばれる事があります。
- Player player;
- player.Damage();
- Enemy enemy;
- enemy.Damage();
このように継承元の関数が呼び出せます。
もし継承せずにPlayerとEnemyで同じ処理を実装していた場合、仕様が変わるたびに両方修正する必要が出てきてしまいます。
継承を使うことでそういった問題に対処することができます。
継承はC++等のオブジェクト指向の言語では必須の技術なので、積極的に使って使い方を覚えていきましょう!