オペレーターの過負荷とは何ですか?
オペレーターのオーバーロードは、プログラマーがデフォルトの演算子をオーバーライドできるようにするコンピュータープログラミング言語機能です。演算子関数が過負荷になっている場合、演算子がデフォルトで処理できるものとは異なるデータ型であるカスタム引数で宣言される場合があります。新しいパラメーターは、プリミティブまたはユーザー定義のタイプである場合があります。オーバーライド関数の本体内で、プログラマーは、必要に応じてパラメーター値を操作できます。オペレーターのオーバーロードを使用することにより、プログラマーは、ユーザー定義のデータ型を操作するための直感的なショートカットを作成したり、デフォルトのデータ型の処理方法を変更したりします。
ユーザー定義のデータ型が作成された場合、2つの追加や、データタイプを使用して純粋な増分オペレーターを使用して内部データを増やすなど、単純なオペレーションタスクを実行する方法はありません。追加記号を含む演算子は、2つのカスタムデータ型の間にバイナリ演算子として使用される場合、ユーザーDEを返すようにオーバーライドできます。罰金の結果。同様に、インクリメーションオペレーターのような単位オペレーターは、ユーザー定義タイプ内の内部値を増やすためにオーバーライドされる可能性があります。
オペレーターが過負荷になったら、コンパイラは過負荷のオペレーターに遭遇したときに何をすべきかを決定する必要があります。コンパイラは、オペランドとして、またはオペレーターと連携して使用されているデータ型に基づいて、適切なアクションを決定します。オペレーター関数のパラメーター値であるオペランドがユーザー定義のデータ型である場合、コンパイラは使用されているオペランドに一致するパラメーターを持つオーバーロードされた関数を選択します。
コンピューター言語は、このタイプのアドホック多型をどのように許可するかによって異なります。異なる言語では、新しいカスタムオペレーターの作成、すべてまたは一部のオペレーターの過負荷、またはオペレーターのオーバーロードがまったく許可されない場合があります。 C ++、C#、PHP、およびPerlすべてがオペレーターの一部を過負荷にすることを可能にします。 c、java、およびjavascriptでは、オペレーターの過負荷は許可されていません。
一般に、オペレーターの過負荷と関数の過負荷の両方が議論の対象となっています。プログラマーにオペレーターの動作方法を変更する自由を与えると、カスタマイズされたコードを使用する他のプログラマーが意図しないエラーを作成する可能性を導入できると主張する人もいます。対立する視点は、オペレーターのオーバーロードを可能にすることで、プログラマーが理解しやすく、生成のコストを減らし、エラーを減らすための直感的で簡潔なコードを作成する能力を提供することを提案しています。