コンテンツにスキップ

クラス#

イントロダクション#

クラスはオブジェクト指向プログラミングにおける基本的な構造です。クラスを使うことで、データとその操作を一つの単位としてまとめることができます。

以下にクラスの基本的な例を示します。

#include <iostream>

class MyClass {
public:
    int data;
    MyClass(int value) : data(value) {}
    void display() {
        std::cout << "Data: " << data << std::endl;
    }
};

int main() {
    MyClass obj(10);
    obj.display();
    return 0;
}

この例では、MyClassというクラスを定義しています。クラスの中には、データメンバーとしてdataがあり、コンストラクタとメンバ関数displayが含まれています。コンストラクタはオブジェクトが生成されるときに呼び出され、dataに初期値を設定します。メンバ関数displayは、dataの値を出力します。

クラスを使うことで、関連するデータと操作を一つの単位として扱うことができ、コードの再利用性と保守性が向上します。

クラスの継承#

クラスの継承を使うことで、既存のクラスの機能を拡張した新しいクラスを作成することができます。これにより、コードの再利用性と拡張性が向上します。

以下に継承の基本的な例を示します。

#include <iostream>

class BaseClass {
public:
    int base_data;
    BaseClass(int value) : base_data(value) {}
    void displayBase() {
        std::cout << "Base Data: " << base_data << std::endl;
    }
};

class DerivedClass : public BaseClass {
public:
    int derived_data;
    DerivedClass(int base_value, int derived_value) 
        : BaseClass(base_value), derived_data(derived_value) {}
    void displayDerived() {
        std::cout << "Derived Data: " << derived_data << std::endl;
    }
};

int main() {
    DerivedClass obj(10, 20);
    obj.displayBase();
    obj.displayDerived();
    return 0;
}

この例では、BaseClassという基底クラスと、DerivedClassという派生クラスを定義しています。DerivedClassBaseClassを継承しており、基底クラスのメンバbase_dataとメンバ関数displayBaseを利用できます。さらに、派生クラスには独自のメンバderived_dataとメンバ関数displayDerivedが追加されています。

継承を使うことで、共通の機能を基底クラスにまとめ、特定の機能を派生クラスに追加することができます。これにより、コードの重複を避け、プログラムの構造をより整理されたものにすることができます。