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 { public: 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); -v1; v1.displayVector(); -v2; v2.displayVector(); return 0; }
The output of the above code will be:
(-10, -15) (-5, 25)
❮ C++ - Operator Overloading