Day 9では、クラスとオブジェクトについて学習します。
以下にそれぞれの内容を詳細に説明し、例題と演習問題を提示します。
クラスとオブジェクトの内容:
1. クラス:
– クラスはオブジェクトの設計図であり、オブジェクトを作成するためのテンプレートです。
– クラスは、オブジェクトが持つべきデータ(メンバ変数)と操作(メンバ関数)を定義します。
– クラスの定義は、`class` キーワードを使い、クラス名と中括弧 `{}` で囲まれたメンバ変数とメンバ関数の定義から構成されます。
2. オブジェクト:
– オブジェクトは、クラスのインスタンスです。クラスからオブジェクトを作成することをインスタンス化と呼びます。
– オブジェクトは、クラスの定義に基づいて作成され、そのクラスが持つメンバ変数とメンバ関数にアクセスできます。
3. メンバ変数:
– メンバ変数は、クラス内で宣言される変数で、オブジェクトが持つデータを表します。
– メンバ変数はクラス内のどこでもアクセスできます。
4. メンバ関数:
– メンバ関数は、クラス内で宣言される関数で、オブジェクトが持つ操作を定義します。
– メンバ関数は、クラス内のメンバ変数にアクセスできます。
例題:
#include <iostream> // Rectangleクラスの定義 class Rectangle { public: double width; double height; // 面積を計算するメソッド double calculateArea() { return width * height; } }; int main() { // Rectangleクラスから2つのオブジェクトを作成 Rectangle rect1, rect2; // オブジェクトのメンバ変数に値を代入 rect1.width = 5.0; rect1.height = 3.0; rect2.width = 4.0; rect2.height = 2.5; // オブジェクトのメソッドを呼び出して面積を計算 double area1 = rect1.calculateArea(); double area2 = rect2.calculateArea(); std::cout << "Area of rect1: " << area1 << std::endl; std::cout << "Area of rect2: " << area2 << std::endl; return 0; }
演習問題:
1. Pointクラスを定義してください。このクラスには、x座標とy座標を表すメンバ変数が含まれるようにしてください。また、Pointクラスに2つの座標を受け取って距離を計算するメソッドを追加してください。その後、2つの座標を入力として受け取り、距離を計算して表示するプログラムを作成してください。
2. 学生(Student)クラスを定義してください。このクラスには、学生の名前と成績を表すメンバ変数が含まれるようにしてください。また、成績を設定するメソッドと成績を表示するメソッドを追加してください。その後、学生の名前と成績を入力として受け取り、成績を設定して表示するプログラムを作成してください。
これらの例題と演習問題を解くことで、クラスとオブジェクトの使い方を理解し、メンバ変数とメンバ関数を操作してプログラムを作成するスキルを向上させることができます。問題を解いたら、プログラムが正しく動作しているかどうかを確認してみてください。