C++ での関数のオーバーロードと関数のオーバーライド

WBOY
リリース: 2024-04-14 09:21:02
オリジナル
393 人が閲覧しました

C では、関数のオーバーロードを使用して、名前は同じでパラメーター リストが異なる関数を作成できます。関数のオーバーライドは派生クラスで発生し、派生クラスで定義された関数と基本クラスの同じ名前の関数が基本クラスのメソッドをオーバーライドします。

C++ 中的函数重载和函数覆盖

#C での関数のオーバーロードと関数のオーバーライド

はじめに

関数のオーバーロードと関数オーバーライドは、同じ名前の関数をさまざまな方法で作成できるようにする C の 2 つの重要な機能です。このチュートリアルでは、両方の概念について説明し、実践的な例を示します。

関数のオーバーロード

関数のオーバーロードを使用すると、名前は同じでパラメーター リストが異なる複数の関数を作成できます。コンパイラは関数を呼び出すときに、引数リストに基づいて呼び出す正しい関数を決定します。

#文法

type function_name(parameter_list1);
type function_name(parameter_list2);
ログイン後にコピー

実用的なケース

次のコードは関数のオーバーロードを示しています:

#include <iostream>

int sum(int a, int b) {
  return a + b;
}

double sum(double a, double b) {
  return a + b;
}

int main() {
  std::cout << sum(1, 2) << std::endl; // 输出:3
  std::cout << sum(1.5, 2.5) << std::endl; // 输出:4
}
ログイン後にコピー

関数カバレッジ

関数カバレッジは派生クラスで発生します。派生クラスで定義された関数は、基本クラスで定義された関数と同じ名前とパラメーター リストを持ちます。派生クラスのメソッドは、基本クラスのメソッドをオーバーライドします。

#文法

class DerivedClass : public BaseClass {
public:
  type function_name(parameter_list); // 覆盖 BaseClass 中的方法
};
ログイン後にコピー
実践的なケース

#次のコードは関数カバレッジを示しています:

#include <iostream>

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

class Square : public Shape {
public:
  Square(double side_length) : side_length(side_length) {}
  double area() const override {
    return side_length * side_length;
  }

private:
  double side_length;
};

int main() {
  Square square(5);
  std::cout << square.area() << std::endl; // 输出:25
}
ログイン後にコピー

結論

関数のオーバーロードと関数のオーバーライドは、C の 2 つの強力な機能で、動作が異なる同じ名前の関数を作成できます。関数のオーバーロードは、異なるパラメーター リストを持つ関数を作成するために使用され、関数のオーバーライドは、派生クラスの基本クラス メソッドをオーバーライドするために使用されます。

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

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