Mega Code Archive

 
Categories / C++ Tutorial / Operator Overloading
 

Operator+( ) function

#include <iostream> using namespace std;     class loc {   int longitude, latitude; public:   loc() {} // needed to construct temporaries   loc(int lg, int lt) {     longitude = lg;     latitude = lt;   }       void show() {     cout << longitude << " ";     cout << latitude << "\n";   }       friend loc operator+(loc op1, loc op2); // now a friend   loc operator-(loc op2);   loc operator=(loc op2);   loc operator++(); };     // + is overloaded using friend function. loc operator+(loc op1, loc op2) {   loc temp;       temp.longitude = op1.longitude + op2.longitude;   temp.latitude = op1.latitude + op2.latitude;       return temp; }     // Overload - for loc. loc loc::operator-(loc op2) {   loc temp;       // notice order of operands   temp.longitude = longitude - op2.longitude;   temp.latitude = latitude - op2.latitude;       return temp; }     // Overload assignment for loc. loc loc::operator=(loc op2) {   longitude = op2.longitude;   latitude = op2.latitude;       return *this; // i.e., return object that generated call }     // Overload ++ for loc. loc loc::operator++() {   longitude++;   latitude++;       return *this; }     int main() {   loc ob1(10, 20), ob2( 5, 30);       ob1 = ob1 + ob2;   ob1.show();       return 0; }