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

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

  1. C ++のsizeof演算子とは何ですか?

    sizeofはキーワードですが、変数またはデータ型のサイズをバイト単位で決定するコンパイル時の演算子です。 sizeof演算子を使用して、クラス、構造体、共用体、およびその他のユーザー定義のデータ型のサイズを取得できます。 sizeofを使用する構文は次のとおりです- sizeof (data type) ここで、データ型は、クラス、構造体、共用体、およびその他のユーザー定義のデータ型を含む、目的のデータ型です。 sizeof演算子をchar型のオブジェクトに適用すると、1が得られます。sizeof演算子を配列に適用すると、配列IDで表されるポインターのサイズではなく、その配列の合計バイト数が

  2. C++の単項演算子

    単項演算子は、単一のオペランドに作用して新しい値を生成する演算子です。単項演算子は次のとおりです。 演算子 説明 間接演算子(*) ポインタ変数を操作し、ポインタアドレスの値と同等のl値を返します。これは、ポインタの「逆参照」と呼ばれます。 演算子のアドレス(&) 単項アドレス演算子(&)は、そのオペランドのアドレスを取ります。アドレスオブ演算子のオペランドは、関数指定子またはビットフィールドではなくレジスタストレージクラス指定子で宣言されていないオブジェクトを指定するl値のいずれかです。 単項プラス演算子(+) 単項プラス演算子(+)の結果は