C++におけるオブジェクト指向プログラミング Part V
継承 (Inheritance) とは何か?
継承は、新しいクラス(派生クラス)が既存のクラス(基底クラス)から属性やメソッドを受け継ぐOOPの機能です。この関係により、派生クラスは基底クラスで定義された動作を再利用、拡張、または変更できます。
C++における継承のタイプ
C++はいくつかのタイプの継承をサポートしています:
単一継承: 一つの基底クラスから派生する。
多重継承: 複数の基底クラスから派生する。
多段階継承: クラスが派生クラスから派生し、多段階の階層を形成する。
階層継承: 複数のクラスが一つの基底クラスから派生する。
C++における継承の実装
C++では、コロン(:)記号を使用して継承を実装します。アクセス指定子(public、protected、private)は、基底クラスのメンバーが派生クラスでどのように扱われるかを決定します。
単一継承の例:
class Animal
{ // 基底クラス
public:
void eat()
{
cout << "Eating..." << endl;
}
};
class Dog : public Animal
{ // 派生クラス
public:
void bark()
{
cout << "Barking..." << endl;
}
};
int main()
{
Dog myDog;
myDog.eat(); // Animalから継承
myDog.bark(); // Dogで定義
return 0;
}
この例では、DogはAnimalから継承しています。その結果、DogはAnimalで定義されたeatメソッドを使用でき、自身のメソッドであるbarkも持っています。
継承の利点
コードの再利用: 基底クラスからの機能を再利用し、コードの重複を避ける。
拡張性: 基底クラスの機能を派生クラスで容易に拡張できる。
ポリモーフィズム: 基底クラスのポインタを使用して派生クラスのオブジェクトを参照できる。
結論
C++における継承は、コードの整理と再利用を促進し、アプリケーションをよりモジュラーでスケーラブルにする強力な方法を提供します。これはOOPの基本であり、より単純な機能の上に複雑な機能を構築するために不可欠です。
次回のパート6では、C++におけるポリモーフィズムを深掘りし、オブジェクト指向プログラミングのさらにダイナミックな振る舞いに焦点を当てます。
エンジニアファーストの会社 株式会社CRE-CO
su_myat_phyu
参考
Object Oriented Programming in C++ :
C++ Object Oriented Programming :