Skip to main content

関数の過負荷とは何ですか?

関数オーバーロードは、同じ名前ではなく異なる入力パラメーターまたはリターンタイプで複数のメソッドを作成できる多くのプログラミング言語の機能です。これは、オブジェクト指向プログラミングの一般的な機能です。特にコンストラクターには、複数の異なる過負荷型バリアントがある場合があります。基本的に、2つの関数が非常に類似したことを行い、それを行うために複数のタイプの入力を取ることができる場合、関数の過負荷は役立ちます。コンストラクターは、明示的な返品タイプが指定されていないために簡単に過負荷にすることができるため、コンストラクターの入力パラメーターを単に変更するだけで有効なオーバーロードがあります。たとえば、入力として2つの整数として削除されるAddと呼ばれる関数を考慮することができます。この関数の目的はかなり明白です。2つの整数の合計を見つけることを目的としています。cum 2つのフロートまたは小数の数値の合計を見つけたい場合、この関数は適用されません。したがって、入力2つのフロートとして取るADDと呼ばれる関数として定義される2番目のオーバーロードされた関数が必要になります。関数は本質的に同じことを行いますが、入力が大きく異なるため、関数の過負荷が必要です。前の例を使用して、両方のオーバーロードされたADD関数にボイドリターンタイプがあるかどうかを考慮することができます。つまり、彼らは何も返しませんでした。これは依然として有効な関数過負荷ですが、2つの方法の返品タイプも変更できます。オーバーロードの別の有効なインスタンスでは、2つの整数を取るADD関数はその整数を返すことができ、2つの小数を取るADD関数は小数点以下の数値を返すことができます。、有効な関数過負荷とは見なされません。関数のリターンタイプのみを変更すると、曖昧さは曖昧になります。パラメーターは曖昧に定義することもできるため、過負荷の関数を適切に呼び出すことが非常に重要です。たとえば、入力パラメーターとして整数を持つオーバーロードされた関数があり、もう1つはパラメーターとして10進数を持つ関数がある場合、誰かが整数関数の代わりに10進数関数を誤って呼び出すのは非常に簡単です、またはその逆も同様です。同じ名前を持っているからです。これらのようなあいまいなパラメーターは、可能であれば避ける必要があり、それらができない場合は、適切な時間に適切な過負荷関数が呼び出されるように細心の注意を払う必要があります。、そしてそれはコードに多くの柔軟性を与えます。過負荷機能に関する最後の考慮事項の1つは、適切なコメントが不可欠であることです。入力パラメーターが異なることで明確になる可能性がありますが、どのバージョンの過負荷機能が特定の状況に適しているかは明らかですが、その関数が他の過負荷パートナーとは異なる方法を正確に明確にするとは限りません。