OPERATOR
OVERLOADING
Arnold Ramirez
Ace Anthony Dela Serna
Chester Jeff Ancheta
Introduction
The meaning of an operator is always same for variable
of basic types like: int, float, double etc.
For example: To add two integers, + operator is used.
However, for user-defined types (like: objects), you can
redefine the way operator works.
For example: If there are two objects of a class that contains string
as its data members. You can redefine the meaning of + operator and
use it to concatenate those strings.
Introduction
This feature in C++ programming
that allows programmer to redefine the
meaning
of an operator (when they operate on class
objects) is known as
operator overloading.
C++ Operator Overloading
Operator overloading is a compile-time
polymorphism in which the operator is overloaded to
provide the special meaning to the user-defined
data type.
Operator overloading is used to overload or redefines
most of the operators available in C++.
It is used to perform the operation on the user-defined
data type.
Use of Operator Overloading
You can write any C++ program without the
knowledge of operator overloading. However,
operator operating are profoundly used by
programmers to make program intuitive.
For example,
You can replace the code like,
calculation = add(multiply(a, b),divide(a, b));
to
calculation = (a*b)+(a/b);
How to Overload Operators
To overload an operator, a special operator function is
defined inside the class as:
class className
{
... .. ...
public
returnType operator symbol (arguments)
{
... .. ...
}
... .. ...
};
Example
#include <iostream>
using namespace std;
class Test
{
private:
int count;
public:
Test(): count(5){}
void operator ++()
{
count = count+3;
}
void Display() { cout<<"Count: "<<count; }
};
Example
int main()
{
Test t;
// this calls "function void operator ++()"
function
++t;
t.Display();
return 0;
}
Output:
Count: 8
Example
The function is called when ++ operator operates
on the object of Test class (object t in this case).
In the program,void operator ++ () operator
function is defined (inside Test class).
This function increments the value of count by 3
for t object.
Things to Remember!
Operator overloading allows you to redefine the
way operator works for user-defined types only
(objects, structures). It cannot be used for built-
in types (int, float, char etc.).
Two operators = and & are already overloaded
by default in C++. For example: To copy objects
of same class, you can directly use = operator.
You do not need to create an operator function.
Things to Remember!
Operator overloading cannot change the
precedence and associatively of operators.
However, if you want to change the order of
evaluation, parenthesis should be used.
There are 4 operators that cannot be
overloaded in C++. They are :: (scope
resolution), . (member selection), .* (member
selection through pointer to function) and ?:
(ternary operator).
Things to Remember!
Operator overloading cannot change the
precedence and associatively of operators.
However, if you want to change the order of
evaluation, parenthesis should be used.
There are 4 operators that cannot be
overloaded in C++. They are :: (scope
resolution), . (member selection), .* (member
selection through pointer to function) and ?:
(ternary operator).
References:
Programiz (n.d.), C++ Operator Overloading,
Retrieved at www.programiz.com/cpp-
programming/operator-overloading on August 16,
2019.
Javatpoint (n.d.), C++ Overloading (Function and
Operator), Retrieved at
https://javatpoint.com/cpp-overloading on August
16, 2019.