C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

マルチレベルの継承を示すC++プログラム


Vehicle、FourWheeler、Carの3つのクラスがあるとします。クラスVehicleは基本クラスであり、クラスFourWheelerはそれから派生し、クラスCarはクラスFourWheelerから派生します。クラスVehicleには、「I am a Vehicle」を出力するメソッド「vehicle」があり、クラスFourWheelerには、「I have four Wheels」を出力するメソッド「fourWheeler」があり、クラスCarには、「I amacar」を出力するメソッド「car」があります。 '。したがって、これはマルチレベルの継承であるため、クラスCarのオブジェクトから他のすべてのクラスメソッドにアクセスできます。 Carオブジェクトからすべてのメソッドを呼び出し、メソッドの対応する出力を出力します。

したがって、car()、fourWheeler()、Vehicle()の順にメソッドを呼び出すと、出力は-

になります。
I am a car
I have four wheels
I am a vehicle

これを解決するには、次の手順に従います-

  • 新しいクラスの車両を定義します。
    • 関数Vehicle()を定義します
      • print( "私は車です")
  • Vehicleクラスから継承する新しいクラスFourWheelerを定義します。
    • 関数fourWheeler()を定義します
      • print( "私は4つの車輪を持っています")
  • FourWheelerクラスから継承する新しいクラスCarを定義します。
    • 関数car()を定義する
      • print( "私は車です")

理解を深めるために、次の実装を見てみましょう-

#include <iostream>
using namespace std;

class Vehicle{
   public:
      void vehicle(){
         cout<<"I am a vehicle\n";
      }
};

class FourWheeler : public Vehicle{
   public:
      void fourWheeler(){
         cout<<"I have four wheels\n";
      }
};

class Car : public FourWheeler{
   public:
      void car(){
         cout<<"I am a car\n";
      }
};
int main(){
   Car obj;
   obj.car();
   obj.fourWheeler();
   obj.vehicle();
   return 0;
}

入力

Car obj;
obj.car();
obj.fourWheeler();
obj.vehicle();

出力

I am a car
I have four wheels
I am a vehicle

  1. C++での多重継承

    多重継承は、クラスが複数の基本クラスから継承する場合に発生します。したがって、クラスは、多重継承を使用して複数の基本クラスから機能を継承できます。これは、C++などのオブジェクト指向プログラミング言語の重要な機能です。 多重継承を示す図を以下に示します- C++で多重継承を実装するプログラムは次のとおりです- 例 #include <iostream> using namespace std; class A {    public:    int a = 5;    A() {     &

  2. C++のローカルクラス

    関数内で宣言されたクラスは、その関数に対してローカルであるため、C++ではローカルクラスと呼ばれます。 ローカルクラスの例を以下に示します。 #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main() {    return 0; } 上記の例では、func()は関数であり、クラスLocalClassは関数内で定義されています。したがって、ローカルクラスとして知られています。 ローカルクラ