Write a program to overload unary plus operator.
#include<iostream> using namespace std; class A { private: int x,y; public: A(); A(int,int); void print(); //A operator +(); friend A& operator +(A&); }; A :: A() { cout << "default constructor" << endl; } A :: A(int a,int b):x(a),y(b) { cout << "parameterized constructor" << endl; } #if 0 //using member function A A :: operator +() { A temp; temp.x = +x; temp.y = +y; return temp; } #else //using friend function A& operator +(A& ob) { static A temp; temp.x = +ob.x; temp.y = +ob.y; return temp; } #endif void A :: print() { cout << "x = " << x << " y = " << y << endl; } int main() { A obj1(10,20),obj2(-34,56),obj3(45,-43),obj4(-24,-86); obj1.print(); obj2.print(); obj3.print(); obj4.print(); obj1 = +obj1;//obj1 = obj1.operator+() obj2 = +obj2; obj3 = +obj3; obj4 = +obj4; obj1.print(); obj2.print(); obj3.print(); obj4.print(); return 0; }
Output
parameterized constructor parameterized constructor parameterized constructor parameterized constructor x = 10 y = 20 x = -34 y = 56 x = 45 y = -43 x = -24 y = -86 default constructor x = 10 y = 20 x = -34 y = 56 x = 45 y = -43 x = -24 y = -86