Introduction
Operator overloading is one of the best features of C++. By overloading operators, we can give additional meaning to operators like +,-,*,<=,>=, etc. which by default are supposed to work only on standard data types like int, float, etc.
The operators that cannot be overloaded are ., ::, ? and : .
Here, we created a simple class, whose name is xy example for operator overloading. We created two int variables, x,y, to test all operations of operator overloading features in C++.
- #include<iostream.h>
- #include<conio.h>
- class xy
- {
- private:
- int x,y;
- public:
-
- xy()
- { x=y=0; }
- xy(int i,int j)
- {x=i;y=j;}
- xy(xy &z)
- {x=z.x;y=z.y;}
-
- xy operator-();
- xy operator++();
- xy operator--();
- xy operator++(int);
- xy operator--(int);
-
- xy operator+(xy &);
- xy operator-(xy &);
- xy operator*(xy &);
- xy operator/(xy &);
- xy operator%(xy &);
- xy operator=(xy &);
- xy operator+=(xy &);
- xy operator-=(xy &);
- xy operator*=(xy &);
- xy operator/=(xy &);
- xy operator%=(xy &);
-
- int operator<(xy &);
- int operator>(xy &);
- int operator==(xy &);
- int operator!=(xy &);
- int operator<=(xy &);
- int operator>=(xy &);
-
- friend ostream&operator<<(ostream&, xy&);
- friend istream&operator>>(istream&, xy&);
- };
Next, we created a body of all functions and called a function in the functions of a C++ program.
The calling function internal layout is c=a.operator+(b); but C++ provided user-friendly features operator overloading, so our calling layout is c=a+b like normal default data types operations. I hope operator overloading will be helpful for students and beginner to understand basic fundamentals of object-oriented programming.