0% found this document useful (0 votes)
41 views

Operater Overloading D

The assignment operator (=) can be overloaded in C++ just like other operators. This allows objects to be assigned and copied like with the copy constructor. An example overloads the assignment operator in a Distance class to copy the feet and inches fields. The function call operator () can also be overloaded to allow class objects to be called like functions. An example overloads () in the Distance class to return a new Distance calculated from parameters. This allows D2 to be assigned by calling D1 as a function.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Operater Overloading D

The assignment operator (=) can be overloaded in C++ just like other operators. This allows objects to be assigned and copied like with the copy constructor. An example overloads the assignment operator in a Distance class to copy the feet and inches fields. The function call operator () can also be overloaded to allow class objects to be called like functions. An example overloads () in the Distance class to return a new Distance calculated from parameters. This allows D2 to be assigned by calling D1 as a function.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Assignment Operators Overloading in C++

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.

Following example explains how an assignment 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;
}
void operator = (const Distance &D ) {
feet = D.feet;
inches = D.inches;
}

// method to display distance


void displayDistance() {
cout << "F: " << feet << " I:" << inches << endl;
}
};

int main() {
Distance D1(11, 10), D2(5, 11);

cout << "First Distance : ";


D1.displayDistance();
cout << "Second Distance :";
D2.displayDistance();

// use assignment operator


D1 = D2;
cout << "First Distance :";
D1.displayDistance();

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;
}

// overload function call


Distance operator()(int a, int b, int c) {
Distance D;

// just put random calculation


D.feet = a + c + 10;
D.inches = b + c + 100 ;
return D;
}

// method to display distance


void displayDistance() {
cout << "F: " << feet << " I:" << inches << endl;
}
};

int main() {
Distance D1(11, 10), D2;

cout << "First Distance : ";


D1.displayDistance();

D2 = D1(10, 10, 10); // invoke operator()


cout << "Second Distance :";
D2.displayDistance();

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

You might also like