ビデオ: is演算子によるオブジェクトの同一性の比較 - narupoのPython入門29 2024
int 、 float などの 、 とdouble、およびさまざまなポインタ型があります。 C ++では、プログラマは、これらの組み込み演算子に加えてプログラマが作成したクラスの演算子を定義することができます。これは 演算子のオーバーロードと呼ばれます。 通常、オペレータのオーバーロードはオプションで、C ++プログラマの初心者が試みることはありません。経験豊富なC ++プログラマーの多くは、演算子のオーバーロードも素晴らしい考えではないと考えています。ただし、1つの演算子に過負荷をかける方法、つまり代入演算子を学習する必要があります。
<! - 1 - >
演算子は、独特の構文を持つ組み込み関数にすぎません。実際には、C ++は各演算子に関数型の名前を与えます。以下の加算演算a + b
は、演算子+(a、b)オペレータの機能名は、キーワード演算子の前に適切な引数型が続く演算子シンボルです。たとえば、intを生成するintにintを追加する
+
演算子は、int operator +(int、int)と呼ばれます。
<! - 2 - > 既存の演算子は、ユーザー定義のクラスに対して定義できます。したがって、Complex演算子*(const Complex&、const Complex&)を作成して、Complex 型の2つのオブジェクトを乗算することができました。
新しい演算子は、それがオーバーロードする演算子と同じセマンティクスを持ちますが、必ずしもそうである必要はありません。演算子のオーバーロード時には、次の規則が適用されます。プログラマは をオーバーロードできません。 (ドット)、
-
(大腸)、 。 *、* - >、sizeof 、および ? : (3進)演算子。 <! - 3 - > プログラマは新しい演算子を生成できません。たとえば、操作x $ y を作成することはできません。 演算子の構文は変更できません。したがって、%は既にバイナリ演算子として定義されているため、演算%iを定義することはできません。
演算子の優先順位は変更できません。プログラムは演算子* -
の前に演算子+を評価することはできません。 組み込み型に適用した場合、演算子を再定義することはできません.1 + 2の意味を変更することはできません。既存の演算子は、新しく定義された型に対してのみオーバーロードできます。
-
演算子のオーバーロードは、実際よりもはるかに良いアイデアのように思えるものの1つです。通常、オペレータのオーバーロードには、解決するよりも多くの問題があります。