一元运算符在一个操作数上操作,下面是一元运算符的例子:
-
一元减( - )运算符
-
逻辑非(!)运算符
一元运算符用于它们被称为和通常操作符出现在对象的左侧,如在obj上进行操作!obj,-obj和++obj等,但有时它们可以用作后缀以及像obj++或obj--。
下面的例子说明如何减号( - )运算符可以重载前缀和后缀的用法。
#include <iostream> using namespace std; class Distance { private: int feet; // 0 to infinite int inches; // 0 to 12 public: // required constructors Distance(){ feet = 0; inches = 0; } Distance(int f, int i){ feet = f; inches = i; } // method to display distance void displayDistance() { cout << "F: " << feet << " I:" << inches <<endl; } // overloaded minus (-) operator Distance operator- () { feet = -feet; inches = -inches; return Distance(feet, inches); } }; int main() { Distance D1(11, 10), D2(-5, 11); -D1; // apply negation D1.displayDistance(); // display D1 -D2; // apply negation D2.displayDistance(); // display D2 return 0; }
让我们编译和运行上面的程序,这将产生以下结果:
F: -11 I:-10 F: 5 I:-11
希望上面的例子,能够帮你清晰概念,可以应用类似的概念重载逻辑NOT运算符(!)。