Operater Overloading D
Operater Overloading D
You can overload the assignment operator (=) just as you can other operators and it
can be used to create an object just like the copy constructor.
class Distance {
private:
int feet; // 0 to infinite
int inches; // 0 to 12
public:
// required constructors
Distance() {
feet = 0;
inches = 0;
}
Distance(int f, int i) {
feet = f;
inches = i;
}
void operator = (const Distance &D ) {
feet = D.feet;
inches = D.inches;
}
int main() {
Distance D1(11, 10), D2(5, 11);
return 0;
}
When the above code is compiled and executed, it produces the following result −
First Distance : F: 11 I:10
Second Distance :F: 5 I:11
First Distance :F: 5 I:11
Function Call Operator () Overloading in C++
The function call operator () can be overloaded for objects of class type. When you
overload ( ), you are not creating a new way to call a function. Rather, you are creating
an operator function that can be passed an arbitrary number of parameters.
Following example explains how a function call operator () can be overloaded.
#include <iostream>
using namespace std;
class Distance {
private:
int feet; // 0 to infinite
int inches; // 0 to 12
public:
// required constructors
Distance() {
feet = 0;
inches = 0;
}
Distance(int f, int i) {
feet = f;
inches = i;
}
int main() {
Distance D1(11, 10), D2;
return 0;
}
When the above code is compiled and executed, it produces the following result
First Distance : F: 11 I:10
Second Distance :F: 30 I:120