継承と派生
この名前を初めて聞いた場合は、まずこの 2 つの単語の意味を考えてください。まず相続について話しましょう。これは現実の相続の意味と似ています。たとえば、ある人が他人の財産を相続し、息子が父親の相続財産を相続することを相続と呼びます。同様に、C++ では、たとえば 2 つのクラスがある場合、新しいクラスは元のクラスのすべての属性を持ちます。これは継承と呼ばれます。元のクラスから新しいクラスを生成するプロセスは、派生と呼ばれます。そして、元のクラスを親クラスまたは基底クラスと呼び、基底クラスから派生したクラスを派生クラスまたはサブクラスと呼びます。誰もが名前から彼らの関係を知ることができます。
では、継承と派生にはどのような利点があるのでしょうか?なぜ C++ にはこのような仕組みがあるのでしょうか?
1. オブジェクト指向プログラミングのアイデアを反映し、さまざまなタイプ間の関係をより適切に表現します。
2. 派生クラスは、基底クラスのすべての情報を継承するだけでなく、独自の異なる差別化された情報を追加することもできます。派生クラスは、基底クラスのすべての情報を持っていることに基づいて更新されます。強力なベースクラス。
3. 派生クラスから基本クラスに継承されたメンバーは、自動的かつ隠蔽されて所有されます。つまり、再定義する必要がありません。これにより、多くのコードが節約され、コードの再利用というソフトウェア エンジニアリングのアイデアが具体化されます。
次に、実際のコードの実装、派生クラスを継承して実装する方法を見てみましょう。
/************************************//デス: C++ チュートリアル デモ//作成者: Huang/ /著作権:www.dotcpp.com//日付:2018/6/20******************************** * *******/#include<iostream>usingnamespacestd;classClock{private:intH;intM;intS;public:intSetTime(inth,intm,ints){this->H=h;this->M=m ; this->S=s;return0;}intShowTime(){cout<<Now:<<H<<:<<M<<:<<S<<endl;return0;}};classAlarmClock:publicClock{private: intAH ;intAM;public:intSetAlarm(intAH,intAM){this->AH=AH;this->AM=AM;return0;}intShowAlarm(){cout<<AlarmTime:<<AH<<:<<AM<< endl ;return0;}};intmain(){AlarmClockA;A.SetTime(19,15,50);A.ShowTime();A.SetAlarm(5,30);A.ShowAlarm();return0;}
実行中のスクリーンショットは次のとおりです。
Clock は基本クラスであり、AlarmClock は派生クラスを定義しているコードに注意してください。
クラスアラームクロック:パブリッククロック
継承はコロンで表され、 public はパブリック継承、プライベート継承、保護された継承を表します。これについては後ほど詳しく説明します。コードでは、main 関数で派生クラス AlarmClock のオブジェクト A を定義し、基本クラスから SetTime メソッドと ShowTime メソッドを呼び出して、独自のものと同じように使用できます。同時に、派生クラスに独自の SetAlarm メソッドと ShowAlarm メソッドを追加して定義しました。コードを理解して、コンピューター上で実験してください。
ここまで、継承と派生の基本的な概念を紹介しました。これを理解した後、コンピューター上でコーディングを試して、共通性があり関連する 2 つのクラスがどのような状況でこのような関係を持ち得るかを理解し、それらのクラスを比較検討する必要があります。使用。