はじめに
この実験では、C++ プログラミング言語における単一階層継承の概念をどのように示すかを学びます。親クラスと子クラスの 2 つのクラスを作成します。ここで、子クラス(派生クラス)は親クラス(基底クラスまたはスーパークラス)の特性(プロパティとメソッド)を継承します。
この実験では、C++ プログラミング言語における単一階層継承の概念をどのように示すかを学びます。親クラスと子クラスの 2 つのクラスを作成します。ここで、子クラス(派生クラス)は親クラス(基底クラスまたはスーパークラス)の特性(プロパティとメソッド)を継承します。
まず、次のコマンドを使用して ~/project ディレクトリに main.cpp ファイルを作成します。
touch ~/project/main.cpp
次のコードをコピーして main.cpp ファイルに貼り付けます。
#include <iostream>
// 必要なライブラリをインクルードする
using namespace std;
// "Shape" と呼ばれる親クラス(基底クラス)を宣言する
class Shape {
public:
float area(float l, float b) { // 形状の面積を計算するメソッド
return (l * b);
}
float perimeter(float l, float b) { // 形状の周囲を計算するメソッド
return (2 * (l + b));
}
};
// Shape クラスを派生または継承する "Rectangle" と呼ばれる子クラス(派生クラス)を宣言する
class Rectangle: private Shape {
private:
float length,
breadth;
public:
Rectangle(): length(0.0), breadth(0.0) {} // Rectangle のデフォルトコンストラクタ
void getDimensions() { // ユーザーから長方形の寸法を取得するメソッド
cout << "\n長方形の長さを入力してください:";
cin >> length;
cout << "\n長方形の幅を入力してください:";
cin >> breadth;
}
// Shape クラスを使用して長方形の周囲を計算するメソッド
float perimeter() {
// Shape クラスの perimeter() メソッドを呼び出して返す
return Shape::perimeter(length, breadth);
}
// Shape クラスを使用して長方形の面積を計算するメソッド
float area() {
// Shape クラスの area() メソッドを呼び出して返す
return Shape::area(length, breadth);
}
};
int main() {
// Rectangle クラスのオブジェクトを作成する
Rectangle rect;
// 歓迎メッセージ
cout << "\n\n単一階層継承プログラムへようこそ!\n";
// ユーザーへのメッセージ
cout << "\nRectangle クラスは Shape クラスから派生しています。\n\n";
// ユーザーから長方形の寸法を取得する
rect.getDimensions();
// 親クラス Shape を使用して長方形の周囲を計算し、出力を表示する
cout << "\n親クラス Shape を使用して計算された長方形の周囲:" << rect.perimeter() << "\n";
// 親クラス Shape を使用して長方形の面積を計算し、出力を表示する
cout << "親クラス Shape を使用して計算された長方形の面積:" << rect.area() << "\n\n";
return 0;
}
次に、以下のコマンドを使用してコードをコンパイルします。
g++ main.cpp -o main &&./main
その後、以下のコマンドを使用してコードを実行します。
./main
プログラムを実行すると、次の出力が表示されます。
単一階層継承プログラムへようこそ!
Rectangle クラスは Shape クラスから派生しています。
長方形の長さを入力してください: 5
長方形の幅を入力してください: 10
親クラス Shape を使用して計算された長方形の周囲: 30
親クラス Shape を使用して計算された長方形の面積: 50
このプログラムは、ユーザーに長方形の長さと幅を入力するよう促します。寸法を取得した後、親の Shape クラスの perimeter() 関数と area() 関数を使用して周囲と面積を計算します。
おめでとうございます!単一階層継承の概念を示す C++ プログラムを正常に作成しました。様々な形状を試してみることができ、出力は新しい派生クラスの計算結果を正確に反映します。