C ++で単項演算子をオーバーロードするのは何ですか?
単一の演算子は1つの数量で動作し、以下は単一の演算子のサンプルです---インクリメント()およびデクリメント(-)演算子。コンパイラーは、オペランドのタイプを調べることにより、演算子のさまざまな意味を区別します。
- インクリメント(++)およびデクリメント(-)演算子。
- 単項マイナス(-)演算子。
- 論理否定(!)演算子。
単項演算子は、呼び出されたオブジェクトを操作します。通常、この演算子は、!obj、-obj、および++ objのようにオブジェクトの左側に表示されますが、obj++のように後置として使用できる場合もあります。またはobj--。
次の例では、プレフィックスを使用するためにbang(!)演算子をオーバーロードする方法を説明しています-
#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 bang(!) operator
Distance operator!() {
feet = -feet;
inches = -inches;
return Distance(feet, inches);
}
};
int main() {
Distance D1(3, 4), D2(-1, 10);
!D1;
D1.display(); // display D1
!D2; // apply negation
D2.display(); // display D2
return 0;
} F: -3 I:-4 F: 1 I:-10
-
C ++のsizeof演算子とは何ですか?
sizeofはキーワードですが、変数またはデータ型のサイズをバイト単位で決定するコンパイル時の演算子です。 sizeof演算子を使用して、クラス、構造体、共用体、およびその他のユーザー定義のデータ型のサイズを取得できます。 sizeofを使用する構文は次のとおりです- sizeof (data type) ここで、データ型は、クラス、構造体、共用体、およびその他のユーザー定義のデータ型を含む、目的のデータ型です。 sizeof演算子をchar型のオブジェクトに適用すると、1が得られます。sizeof演算子を配列に適用すると、配列IDで表されるポインターのサイズではなく、その配列の合計バイト数が
-
C++の単項演算子
単項演算子は、単一のオペランドに作用して新しい値を生成する演算子です。単項演算子は次のとおりです。 演算子 説明 間接演算子(*) ポインタ変数を操作し、ポインタアドレスの値と同等のl値を返します。これは、ポインタの「逆参照」と呼ばれます。 演算子のアドレス(&) 単項アドレス演算子(&)は、そのオペランドのアドレスを取ります。アドレスオブ演算子のオペランドは、関数指定子またはビットフィールドではなくレジスタストレージクラス指定子で宣言されていないオブジェクトを指定するl値のいずれかです。 単項プラス演算子(+) 単項プラス演算子(+)の結果は