C++ 単項演算子のオーバーロード

C++ 演算子のオーバーロードと関数のオーバーロード

単項演算子は1つのオペランドに対してのみ演算を行います。以下は単項演算子の例です:

単項演算子は通常、操作対象のオブジェクトの左側に現れます。例えば !obj、-obj、++obj などです。しかし、obj++ や obj-- のように後置(サフィックス)として使用されることもあります。

以下の例は、単項マイナス演算子(-)をオーバーロードする方法を示しています。

サンプル

#include <iostream> using namespace std; class Distance { private: int feet; // 0 から無限大まで int inches; // 0 から 12 まで public: // 必要なコンストラクタ Distance(){ feet = 0; inches = 0; } Distance(int f, int i){ feet = f; inches = i; } // 距離を表示するメソッド void displayDistance() { cout << "F: " << feet << " I:" << inches <<endl; } // 負号演算子(-)のオーバーロード Distance operator- () { feet = -feet; inches = -inches; return Distance(feet, inches); } }; int main() { Distance D1(11, 10), D2(-5, 11); -D1; // 符号を反転する D1.displayDistance(); // 距離 D1 -D2; // 符号を反転する D2.displayDistance(); // 距離 D2 return 0; }

上記のコードがコンパイルおよび実行されると、次の結果が生成されます:

F: -11 I:-10
F: 5 I:-11

上記の例が単項演算子のオーバーロードの概念をより深く理解するのに役立つことを願っています。同様に、論理否定演算子(!)のオーバーロードも試してみてください。

C++ 演算子のオーバーロードと関数のオーバーロード

その他の拡張