Unary Operator Overloading in C++
In this tutorial we will study and understand the Unary Operator Overloading in C++ concept and also see a program example of the same.
Unary Operator Overloading in C++
The unary operators operate on a single operand and following are the examples of Unary operators:
- The increment (++) and decrement (–) operators.
- The unary minus (-) operator.
- The logical not (!) operator.
The unary operators operate on the object for which they were called and normally, this operator appears on the left side of the object, as in !obj, -obj, and ++obj but sometime they can be used as postfix as well like obj++ or obj–.
Program example of Unary Operator (-) Overloading in C++
#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; }
Output
F: -11 I:-10
F: 5 I:-11
F: 5 I:-11