ホームページ  >  記事  >  バックエンド開発  >  C++ 関数のオーバーロードと書き換えの理解と使用

C++ 関数のオーバーロードと書き換えの理解と使用

王林
王林オリジナル
2024-04-20 15:36:011089ブラウズ

C での関数のオーバーロードでは、同じ名前の関数を同じクラス内で定義できますが、パラメーター リストが異なります。親クラスと同じ名前とパラメーターを持つ関数がサブクラスで定義されている場合、関数の書き換えが発生します。サブクラス関数は親クラス関数を上書きします。実際の例では、オーバーロードされた関数を使用してさまざまなデータ型の加算演算を実行し、オーバーライドされた関数を使用して親クラスの仮想関数をオーバーライドして、さまざまな形状の面積を計算します。

C++ 函数重载和重写的理解和使用

#C 関数のオーバーロードと書き換え: 深い理解と実践的な応用

#関数のオーバーロード

関数のオーバーロードを使用すると、同じ関数名で異なるパラメーター リストを持つ複数の関数を同じクラス内に定義できます。

class MyClass {
public:
  int add(int a, int b);
  double add(double a, double b);
};

int MyClass::add(int a, int b) {
  return a + b;
}

double MyClass::add(double a, double b) {
  return a + b;
}

関数のオーバーライド

関数のオーバーライドは、親クラスと同じ名前および同じパラメーター リストを持つ子クラスで関数が定義されている場合に発生します。サブクラス関数は親クラス関数をオーバーライドします。

class ParentClass {
public:
  virtual int display() {
    return 10;
  }
};

class ChildClass : public ParentClass {
public:
  int display() { // 重写父类的 display()
    return 20;
  }
};

実践的なケース

オーバーロードされた関数の例:

#include <iostream>

class Calculator {
public:
  int add(int a, int b) {
    return a + b;
  }

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

  std::string add(std::string a, std::string b) {
    return a + b;
  }
};

int main() {
  Calculator calc;
  std::cout << calc.add(1, 2) << std::endl;   // 输出:3
  std::cout << calc.add(1.5, 2.5) << std::endl; // 输出:4
  std::cout << calc.add("Hello", "World") << std::endl; // 输出:HelloWorld
  return 0;
}

書き換えられた関数の例: rreee

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

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