ホームページ > バックエンド開発 > C++ > C++ 関数のオーバーロード使用の分析

C++ 関数のオーバーロード使用の分析

WBOY
リリース: 2024-04-18 18:21:01
オリジナル
778 人が閲覧しました

関数のオーバーロードを使用すると、同じ名前を使用して異なるパラメーター リストを持つ関数を作成できるため、コードの柔軟性が高まります。規則には、関数名が同じであること、パラメータ リストが異なること、およびタイプまたは番号が異なる場合があることが含まれます。たとえば、面積を計算するクラスには、さまざまな形状に対するオーバーロードされた関数が含まれており、対応する関数を呼び出して、形状タイプに基づいて面積を計算できます。

C++ 函数的重载用法解析

# C 関数のオーバーロード使用法の分析

関数のオーバーロードとは何ですか?

関数のオーバーロードを使用すると、同じ名前を使用して、異なるパラメーター リストを持つ複数の関数を作成できます。これにより、コードがより柔軟になり、再利用可能になります。

オーバーロードされた関数の構文

returnType functionName(parameterList1);
returnType functionName(parameterList2);
...
returnType functionName(parameterListN);
ログイン後にコピー

ここで:

  • returnType は関数の戻り値の型です。
  • functionName は関数の名前です。
  • parameterList は関数のパラメータリストです。

関数のオーバーロードのルール

    関数は同じ名前を持ちます。
  • パラメータリストが異なります。
  • パラメータリストのパラメータの種類または番号が異なります。

実際的なケース

さまざまな形状に特化した関数を備えた面積を計算するクラスがあるとします。

class Shape {
public:
  virtual double area() const = 0;
};

class Rectangle : public Shape {
public:
  Rectangle(double width, double height): width(width), height(height) {}
  double area() const override {
    return width * height;
  }
private:
  double width, height;
};

class Circle : public Shape {
public:
  Circle(double radius): radius(radius) {}
  double area() const override {
    return M_PI * radius * radius;
  }
private:
  double radius;
};
ログイン後にコピー

For を計算するには形状の領域では、その型に応じて対応するオーバーロードされた関数を呼び出すことができます:

int main() {
  Shape* shapes[] = { new Rectangle(2.0, 3.0), new Circle(1.0) };
  for (int i = 0; i < 2; i++) {
    std::cout << "Area of shape " << i << ": " << shapes[i]->area() << std::endl;
  }
  return 0;
}
ログイン後にコピー

出力:

Area of shape 0: 6
Area of shape 1: 3.14159
ログイン後にコピー

注:

    Heavy 関数がロードされる順序は、関数呼び出しの結果に影響しません。
  • オーバーロードされた関数には、さまざまなアクセス制御レベル (パブリック、プライベートなど) を設定できます。
  • オーバーロードされた関数には、異なるデフォルトのパラメーター値を指定できます。

以上がC++ 関数のオーバーロード使用の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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