C++一元運算符重載
一元運算符在一個操作數上操作,下麵是一元運算符的例子:
-
一元減( - )運算符
-
邏輯非(!)運算符
一元運算符用於它們被稱為和通常操作符出現在對象的左側,如在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運算符(!)。