C++ Tutorial C++ Advanced C++ References

C++ - Unary Operator Overloading

Unary operators are those operators which acts upon a single operand to produce a new value. Following is the list of unary operators that can be overloaded in C++.

Overloadable unary operators in C++

The unary operators is used with object in the same way as it is used normally. The operator normally precedes object in the expression like - !obj, -obj, and ++obj but sometimes it can be used as postfix as well like obj++ or obj--.

Example: overloading unary minus (-) operator

In the example below, unary minus operator is overloaded. When it is used with vector object, it applies negation on x and y component of the object, for example - applying negation on (10, 15) will produce (-10, -15) and applying negation on (5, -25) will produce (-5, 25).

#include <iostream>
using namespace std;
class vector {
    int x, y;

    //class constructor
    vector(int x, int y) {
      this->x = x;
      this->y = y;

    //function to display vector
    void displayVector() {
      cout<<"("<<x<<", "<<y<<")\n"; 

    //function for overloading unary minus
    vector operator- () {
      x =  -x;
      y =  -y;  
      return vector(x,y);    
int main (){
  vector v1(10, 15), v2(5, -25);


  return 0;

The output of the above code will be:

(-10, -15)
(-5, 25)

❮ C++ - Operator Overloading