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 サイトの他の関連記事を参照してください。