継承とポリモーフィズムは、次の方法で C++ のコードの冗長性を削減します: 継承: 派生クラスは、共通のコードを繰り返し定義することを避けるために、基本クラスのメンバーを継承します。ポリモーフィズム: 異なる派生クラス オブジェクトは、型をチェックするために if-else ステートメントを使用せずに、同じ関数呼び出しで異なる動作に応答します。
C++ の継承とポリモーフィズムはどのようにしてコードの冗長性を削減しますか?
はじめに
継承とポリモーフィズムは、コードを再利用して冗長性を削減するための C++ の強力なツールです。継承を通じて、派生クラスは基本クラスからデータ メンバーとメソッドを継承できます。ポリモーフィズムにより、派生クラスのオブジェクトが同じ関数呼び出しに異なる方法で応答できるようになります。
実際のケース: グラフィック ライブラリ
さまざまな形状を描画するためのクラスの階層を含む単純なグラフィック ライブラリを考えてみましょう。
class Shape { public: virtual void draw() = 0; // 纯虚函数 }; class Circle : public Shape { public: void draw() override { // 绘制圆形 } }; class Rectangle : public Shape { public: void draw() override { // 绘制矩形 } }; class Triangle : public Shape { public: void draw() override { // 绘制三角形 } };
継承
継承を使用することで、各シェイプに対して draw
メソッドを繰り返すことを避けます。代わりに、派生クラスは単に draw
メソッドをオーバーライドし、形状を描画する独自の実装を提供します。 draw
方法。相反,派生类只需覆盖 draw
方法并提供其自身形状的绘制实现即可。
多态性
多态性允许我们以多态的方式使用 Shape
对象。这意味着我们可以创建一个包含不同形状对象的数组,并只需调用 draw
方法就可以绘制它们。C++ 会自动调用派生类的正确 draw
方法。
Shape* shapes[] = {new Circle(), new Rectangle(), new Triangle()}; for (Shape* shape : shapes) { shape->draw(); // 调用正确派生类的 draw 方法 }
减少冗余
通过使用继承和多态性,我们显着减少了代码冗余。
draw
方法。if-else
ポリモーフィズムを使用すると、Shape
オブジェクトをポリモーフィックな方法で使用できます。これは、さまざまな形状のオブジェクトを含む配列を作成し、draw
メソッドを呼び出すだけでそれらを描画できることを意味します。 C++ は、派生クラスの正しい draw
メソッドを自動的に呼び出します。
draw
メソッドを繰り返す必要はもうありません。 if-else
ステートメントはもう必要ありません。
コードの再利用:
継承を通じて一般的な動作を再利用します。 🎜🎜🎜保守性: 🎜新しい形状を追加するときに既存のコードを変更する必要はありません。 🎜🎜🎜拡張性: 🎜新しい機能や動作を簡単に追加します。 🎜🎜🎜🎜結論🎜🎜🎜 C++ の継承とポリモーフィズムは、コードの冗長性を削減し、柔軟で拡張可能なコード ベースを作成するための強力なツールです。 🎜以上が継承とポリモーフィズムは、C++ のコードの冗長性をどのように削減しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。