C 関数の書き換えにより、サブクラスが親クラスの関数をオーバーライドできるようになり、ポリモーフィズムが達成され、継承の柔軟性がもたらされます。関数を書き換える場合、サブクラス関数のシグネチャは、override キーワードで識別される親クラス関数とまったく同じである必要があります。利点には、柔軟性、ポリモーフィズム、コードの再利用が含まれます。ただし、署名一致ルールと最終修飾子はオーバーライドできないことに注意してください。
#C 関数の書き換え: 柔軟な継承の新しい章の幕開け
#序文
関数オーバーライドは、サブクラスが親クラスの関数をオーバーライドできるようにする強力な C 機能であり、それによってポリモーフィズムを実現します。これにより、柔軟な継承の新たな可能性が開かれ、親クラスの基礎となる機能を保持しながら、サブクラスがその動作をカスタマイズできるようになります。構文
関数をオーバーライドするには、サブクラスは親クラスの関数と同じシグネチャを持つ新しい関数を宣言する必要があります。新しい関数の戻り値の型、パラメーター、および名前は、親クラスの関数とまったく同じである必要があります。関数をオーバーライドするための構文は次のとおりです。returntype ClassName::functionName(parameters) { // 子类的函数体 }
returntype は関数の戻り値の型、
ClassName はサブクラスの名前、
functionName は書き換える関数の名前、
parameters は関数のパラメーターのリストです。
実践的なケース
次のような親クラスを考えてみましょう:class Shape { public: virtual double area() { return 0.0; } };
Rectangle を作成したいと考えています。同じ 親クラスの同じ
area() 関数ですが、独自の実装を提供します:
class Rectangle : public Shape { public: double length; double width; Rectangle(double l, double w) : length(l), width(w) {} double area() override { return length * width; } };
Rectangle で、
area() をオーバーライドします。 関数を追加し、四角形の寸法を保存するための
length および
width メンバー変数を追加しました。
override キーワードを使用すると、関数が親クラスの関数をオーバーライドしていることを明示的に示すことができます。
利点
関数のオーバーライドには次の利点があります。注
として宣言されている場合、サブクラスでオーバーライドすることはできません。
以上がC++ 関数の書き換え: 柔軟な継承の新しい章の幕開けの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。