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

PHPz
リリース: 2024-04-20 08:42:02
オリジナル
548 人が閲覧しました

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; // 虚拟函数声明
};
ログイン後にコピー

実用的なケース 関数のオーバーロードと関数のオーバーライドを使用して、次のようなプログラムを作成する次の例を考えてみましょう。形状の面積を計算します: <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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート