クラス#
イントロダクション#
クラスはオブジェクト指向プログラミングにおける基本的な構造です。クラスを使うことで、データとその操作を一つの単位としてまとめることができます。
以下にクラスの基本的な例を示します。
#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
という派生クラスを定義しています。DerivedClass
はBaseClass
を継承しており、基底クラスのメンバbase_data
とメンバ関数displayBase
を利用できます。さらに、派生クラスには独自のメンバderived_data
とメンバ関数displayDerived
が追加されています。
継承を使うことで、共通の機能を基底クラスにまとめ、特定の機能を派生クラスに追加することができます。これにより、コードの重複を避け、プログラムの構造をより整理されたものにすることができます。