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
-
C++のビット演算子
c++では3つのビット単位の演算子を使用できます。これらは、ビット単位のAND(&)、ビット単位のOR(|)、およびビット単位のXOR(^)です。 ビットごとのAND演算子(&)は、第1オペランドの各ビットを第2オペランドの対応するビットと比較します。両方のビットが1の場合、対応する結果ビットは1に設定されます。それ以外の場合、対応する結果ビットは0に設定されます。ビット単位の包括的AND演算子の両方のオペランドは、整数型である必要があります。たとえば、 例 #include <iostream> using namespace std; int mai
-
C++の関係演算子
C ++プログラミングでは、次の演算子を使用して2つの変数に格納されている値を比較し、それらの間の関係を判別できます。これらの演算子は関係演算子と呼ばれます。使用可能なさまざまなC++関係演算子は-です。 演算子 説明 より大きい = 以上 == 等しい != 等しくない 未満 これらの演算子を使用して、オペランド間の関係を確認できます。これらの演算子は主に、2つのオペランド間の関係を見つけてそれに応じて動作するために、条件文とループで使用されます。たとえば、 例 #include<iostream&g