MyInt class – small to demonstrate operator overloading

 

class MyInt
{
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(){};
};

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(){};

};

Advertisement

~ by sinea on May 12, 2009.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.