C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での単項演算子+のオーバーロード


operatorキーワードは、クラスのインスタンスに一度適用されることを意味するoperator-symbolを指定する関数を宣言します。これにより、演算子に複数の意味が与えられるか、「オーバーロード」されます。コンパイラーは、オペランドのタイプを調べることにより、演算子のさまざまな意味を区別します。

単項演算子は単一のオペランドで動作します。以下は単項演算子の例です-

  • インクリメント(++)およびデクリメント(-)演算子。
  • 単項マイナス(-)演算子。
  • 論理否定(!)演算子。

単項演算子は、呼び出されたオブジェクトを操作します。通常、この演算子は、+ obj、!obj、-obj、および++ objのように、オブジェクトの左側に表示されますが、場合によってはobj++やobj--と同様に後置として使用できます。

次の例では、プレフィックスを使用するためにplus(+)演算子をオーバーロードする方法を説明しています-

#include <iostream>
using namespace std;

class Distance {
   private:
   int feet;             // 0 to infinite
   int inches;           // 0 to 12

   public:
   // Constructor
   Distance(int f, int i) {
      feet = f;
      inches = i;
   }

   // method to display distance
   void display() {
      cout << "F: " << feet << " I:" << inches <<endl;
   }

   // overloaded plus(+) operator
   Distance operator+() {
      if(inches == 11) {
         inches = 0;
         feet = feet + 1;
      } else {
         inches = inches + 1;
      }
      return Distance(feet, inches);
   }
};

int main() {
   Distance D1(3, 4), D2(1, 11);

   +D1;
   D1.display();

   +D2;
   D2.display();

   return 0;
}
出力 これにより出力が得られます-

F: 3 I:5
F: 2 I:0

  1. C++のビット演算子

    c++では3つのビット単位の演算子を使用できます。これらは、ビット単位のAND(&)、ビット単位のOR(|)、およびビット単位のXOR(^)です。 ビットごとのAND演算子(&)は、第1オペランドの各ビットを第2オペランドの対応するビットと比較します。両方のビットが1の場合、対応する結果ビットは1に設定されます。それ以外の場合、対応する結果ビットは0に設定されます。ビット単位の包括的AND演算子の両方のオペランドは、整数型である必要があります。たとえば、 例 #include <iostream>   using namespace std;   int mai

  2. C++の関係演算子

    C ++プログラミングでは、次の演算子を使用して2つの変数に格納されている値を比較し、それらの間の関係を判別できます。これらの演算子は関係演算子と呼ばれます。使用可能なさまざまなC++関係演算子は-です。 演算子 説明 より大きい = 以上 == 等しい != 等しくない 未満 これらの演算子を使用して、オペランド間の関係を確認できます。これらの演算子は主に、2つのオペランド間の関係を見つけてそれに応じて動作するために、条件文とループで使用されます。たとえば、 例 #include<iostream&g