#C 関数のオーバーロードと書き換えの実践的な応用例
関数のオーバーロード
関数のオーバーロードにより、次のことが可能になります。同じ関数名でも、異なる型または数の引数を処理するために異なる実装を使用できます。たとえば、異なるタイプのデータを出力する関数を作成できます。同じ名前とパラメータのタイプを持つ関数の実装は異なります。たとえば、面積を計算する関数を定義する基本クラスShape
があります。void print(int value) { cout << value << endl; } void print(double value) { cout << value << endl; } int main() { int num = 10; double number = 12.5; print(num); // 调用 print(int) print(number); // 调用 print(double) return 0; }
Circle は ## をオーバーライドします。 #getArea
関数を作成し、独自の実装を提供します。
class Shape { public: virtual double getArea() = 0; // 虚拟函数声明 };
実用的なケース
関数のオーバーロードと関数のオーバーライドを使用して、次のようなプログラムを作成する次の例を考えてみましょう。形状の面積を計算します:
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:cpp;toolbar:false;'>class Rectangle: public Shape {
public:
double width, height;
Rectangle(double width, double height) : width(width), height(height) {}
double getArea() override {
return width * height;
}
};
class Circle: public Shape {
public:
double radius;
Circle(double radius) : radius(radius) {}
double getArea() override {
return 3.14 * radius * radius;
}
};</pre><div class="contentsignin">ログイン後にコピー</div></div> この場合、</p>Shape<p> クラスは、<strong>Rectangle</strong> によってサブクラス化された仮想 </p>getArea<p> 関数を定義します。 </p>Circle<p> はオーバーライドします。 <code>printArea
関数は、関数のオーバーロードを使用して、さまざまな種類の Shape
オブジェクトを処理し、その領域を印刷します。
以上がC++ 関数のオーバーロードと書き換えの実践的な応用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。