C++ Tutorial Home Page

C++ Operator Overloading

What is operator overloading
Rules for overloading Operators
Operator Overloading restrictions
List of operators that cannot be overloaded.
Overloading Unary operator
Overloading increment operator(++)
Overloading decrement operator(–)
Overloading unary operator(-)
Overloading increment operator(++) postfix
Overloading decrement operator(–) postfix
Overloading increment operator (++) with friend function
Overloading increment operator (–) with friend function
Increment the time using ++
Decrement the time using ++
Overloading Binary operator(+,-,*,/,%)
Add two object using “+” operator with friend function
Overloading “-” operator
Overloading “*” operator
Overloading “/” operator
Overloading “%” operator
overloading all (+,-,*,/,%)
Overloading “+” operator with friend function
class distance (feet,inches) with “+” operator
class distance (feet,inches) with “+” operator with friend function
class distance (km,m) with “+” operator
class distance (km,m) with “+” operator with friend function
class distance (m,cm) with “+” operator
class distance (m,cm) with “+” operator with friend function
class distance (km,m,cm) with “+” operator
class distance (km,m,cm) with “+” operator with friend function
class distance (km,m,cm,mm) with “+” operator
class distance (km,m,cm,mm) with “+” operator with friend function
class time(hh,mm,ss) with “+” operator
class time(hh,mm,ss) with “+” operator with friend function
class complex(real,ing) with “+” operator
class complex(real,ing) with “+” operator with friend function
class string(str) with “+” operator
class string(str) with “+” operator with friend function
overloading “+=” operator

C++:Overloading operators (+=, -=, *=, /=, %=)

Example:4
overloading operator “/=”.

code

Output:

Example:5
overloading operator “%=”.

code

Output:

Example:5
overloading operator (all in one program) “+=, -=, *=, /=, %=”.

// to overload += ,-=,*=,/= and %= operators
// add two objects
#include<iostream>
#include<conio.h>
using namespace std;
class sample
{
	int a;
public:
	sample();
	sample(int n);
	void get();
	void disp();
	void operator+=(sample s);
	void operator-=(sample s);
	void operator*=(sample s);
	void operator/=(sample s);
	void operator%=(sample s);
};
sample::sample()
{
	a=0;
}
sample::sample(int n)
{
	a=n;
}
void sample::get()
{
	cout<<"Enter the value of a ";
	cin>>a;
}
void sample::disp()
{
	cout<<"a= "<<a<<endl;
}
//  +=
void  sample::operator+=(sample s)
{
	a+=s.a;
}
// -=
void sample::operator-=(sample s)
{
	a-=s.a;
}
// *=
void sample::operator*=(sample s)
{
	a*=s.a;
}
// /=
void sample::operator/=(sample s)
{
	a/=s.a;
}
// %=
void sample::operator%=(sample s)
{
	a%=s.a;
}
int main()
{
	sample s1,s2;
	// +=
	s1.get();s2.get();
	s1.disp();s2.disp();
	cout<<"sum"<<endl;
	s2+=s1; //s2.operator+=(s1);
	s2.disp();
	//-=
	cout<<"diff"<<endl;
	s1.get();s2.get();
	s2-=s1;   s2.disp();
	//*=
	cout<<"prod"<<endl;
	s1.get();s2.get();
	s2*=s1;  s2.disp();
	// /=
	cout<<"div"<<endl;
	s1.get();s2.get();
	s2/=s1;   s2.disp();
	// %=
	cout<<"mod"<<endl;
	s1.get();s2.get();
	s2%=s1;
	s2.disp();
	getch();
	return(0);
}

Output:

Enter the value of a 10
Enter the value of a 20
a= 10
a= 20
sum
a= 30
diff
Enter the value of a 10
Enter the value of a 25
a= 15
prod
Enter the value of a 12
Enter the value of a 2
a= 24
div
Enter the value of a 5
Enter the value of a 24
a= 4
mod
Enter the value of a 25
Enter the value of a 7
a= 7