Other example classes where arithmetic operators may be overloaded are Complex Number, Fractional Number, Big Integer, etc.
#include
using
namespace
std;
class
Complex {
private
:
int
real, imag;
public
:
Complex(
int
r = 0,
int
i =0) {real = r; imag = i;}
// This is automatically called when '+' is used with
// between two Complex objects
Complex operator + (Complex
const
&obj) {
Complex res;
res.real = real + obj.real;
res.imag = imag + obj.imag;
return
res;
}
void
print() { cout << real <<
" + i"
<< imag << endl; }
};
int
main()
{
Complex c1(10, 5), c2(2, 4);
Complex c3 = c1 + c2;
// An example call to "operator+"
c3.print();
}
Can we overload all operators?
Almost all operators can be overloaded except few. Following is the list of operators that cannot be overloaded.
Almost all operators can be overloaded except few. Following is the list of operators that cannot be overloaded.
. (dot) :: ?: sizeof
No comments:
Post a Comment