ホームページ  >  記事  >  バックエンド開発  >  C++ 関数のオーバーロードと書き換えの実践的な応用例

C++ 関数のオーバーロードと書き換えの実践的な応用例

PHPz
PHPzオリジナル
2024-04-20 08:42:02549ブラウズ

C++ 函数重载和重写的实际应用案例

#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;
}
サブクラス Rectangle

および

Circle は ## をオーバーライドします。 #getArea 関数を作成し、独自の実装を提供します。

class Shape {
public:
  virtual double getArea() = 0; // 虚拟函数声明
};

実用的なケース 関数のオーバーロードと関数のオーバーライドを使用して、次のようなプログラムを作成する次の例を考えてみましょう。形状の面積を計算します: <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> この場合、

Shape

クラスは、Rectangle によってサブクラス化された仮想

getArea

関数を定義します。

Circle

はオーバーライドします。 printArea 関数は、関数のオーバーロードを使用して、さまざまな種類の Shape オブジェクトを処理し、その領域を印刷します。

以上がC++ 関数のオーバーロードと書き換えの実践的な応用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。