Copyright © tutorialspoint.com

# 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 explain 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 following result:

    First Distance : F: 11 I:10
    Second Distance :F: 5 I:11
    First Distance :F: 5 I:11

Copyright © tutorialspoint.com