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++

 

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++

Run Online

#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
Watch it on YouTube

Leave a Reply

Your email address will not be published. Required fields are marked *