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