In this chapter we shall see how to overload relational operators [<, >, <=, >=, ==].
#include <iostream>
// for more tutorials check www.prodevelopertutorial.com
using namespace std;
class MyClass
{
private:
int num_1;
public:
MyClass(int a): num_1(a){ }
friend void operator < (MyClass &obj1, MyClass &obj2);
friend void operator > (MyClass &obj1, MyClass &obj2);
friend void operator <= (MyClass &obj1, MyClass &obj2);
friend void operator >= (MyClass &obj1, MyClass &obj2);
friend void operator == (MyClass &obj1, MyClass &obj2);
};
void operator < (MyClass &obj1, MyClass &obj2)
{
if(obj1.num_1 < obj2.num_1)
{
cout<<"obj1 is lesser than obj2"<<endl;
}
else
{
cout<<"obj1 is greater than obj2"<<endl;
}
}
void operator > (MyClass &obj1, MyClass &obj2)
{
if(obj1.num_1 > obj2.num_1)
{
cout<<"obj1 is greater than obj2"<<endl;
}
else
{
cout<<"obj1 is lesser than obj2"<<endl;
}
}
void operator <= (MyClass &obj1, MyClass &obj2)
{
if(obj1.num_1 <= obj2.num_1)
{
cout<<"obj1 is lesser than or equal to obj2"<<endl;
}
else
{
cout<<"obj1 is greater than or equal to obj2"<<endl;
}
}
void operator >= (MyClass &obj1, MyClass &obj2)
{
if(obj1.num_1 <= obj2.num_1)
{
cout<<"obj1 is greaterthan or equal to obj2"<<endl;
}
else
{
cout<<"obj1 is lesser than or equal to obj2"<<endl;
}
}
void operator == (MyClass &obj1, MyClass &obj2)
{
if(obj1.num_1 == obj2.num_1)
{
cout<<"obj1 is equal to obj2"<<endl;
}
else
{
cout<<"obj1 is not equal to obj2"<<endl;
}
}
int main(void)
{
MyClass obj_1(10);
MyClass obj_2(30);
obj_1<obj_2;
obj_1>obj_2;
obj_1<=obj_2;
obj_1>=obj_2;
obj_1==obj_2;
}
Output:
obj1 is lesser than obj2
obj1 is lesser than obj2
obj1 is lesser than or equal to obj2
obj1 is greaterthan or equal to obj2
obj1 is not equal to obj2