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値のいずれかです。 単項プラス演算子(+) 単項プラス演算子(+)の結果は