MyInt class – small to demonstrate operator overloading
Basic operator overloading in c++ for a class (MyInt in this case :p)
class MyInt
{
private:
int m_number;
public:
MyInt(int number)
{
m_number = number;
cout << “NEW MYINT MADE. VALUE : ” << m_number << endl;
};
/* GETER FOR M_NUMBER */
int value() const
{
return m_number;
}
/* SHOW THE VALUE OF THE CONTAINED INTEGER */
void showValue() const
{
cout << m_number << endl;
}
/* OVERLOAD THE + OPERATOR FOR THIS CLASS
* MAKE THE SUM OF THE TWO MEMBER VARS
* AND RETURN A NEW OBJECT */
MyInt operator+(MyInt& rightValue)
{
/* MAKE NEW MyInt OBJECT INITIALIZED
* WITH THE SUM OF THE 2 MEMBER INT’s
* rightValue IS THE ONE ON THE RIGHT
* OF THE + OPERATOR :p*/
MyInt rV(m_number + rightValue.value());
/* RETURN THE NEW OBJECT */
return rV;
}
MyInt operator*(MyInt& rightValue)
{
/* EXACTLY THE SAME AS THE + OPERATOR */
MyInt rV(m_number * rightValue.value());
/* RETURN THE NEW OBJECT */
return rV;
}
/* MAKING THE < OPERATOR FOR OUR CLASS */
bool operator<(MyInt& rightValue)
{
/* SAME AS + AND * THE rightValue IS THE
* OBJECT FROM THE RIGHT OF THE OPERATOR
* AND THE ONE FROM THE LEFT IS THE
* CURENT(this) ONE*/
cout << m_number << ” < ” << rightValue.value() << endl;
return m_number < rightValue.value();
}
/* MAKING THE > OPERATOR FOR OUR CLASS */
bool operator>(MyInt& rightValue)
{
/* SAME AS + AND * THE rightValue IS THE
* OBJECT FROM THE RIGHT OF THE OPERATOR
* AND THE ONE FROM THE LEFT IS THE
* CURENT(this) ONE*/
cout << m_number << ” > ” << rightValue.value() << endl;
return m_number > rightValue.value();
}
~MyInt(){};
};
