What are Overloading the extraction and insertion operators ?

Overloading the extraction and insertion operators:

Built-in data types using the stream extraction operator >> and the stream insertion operator <<. The stream insertion and stream extraction operators can be overloaded to perform input and output for user-defined types like an object. It is important to make the operator overloading function a friend of the class because it would be called without creating an object.

Example for extraction operator >> and insertion operator <<.

 

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

      }

      friend ostream &operator<<( ostream &output, const Distance &D ) {

         output << "F : " << D.feet << " I : " << D.inches;

         return output;           

      }

      friend istream &operator>>( istream  &input, Distance &D ) {

         input >> D.feet >> D.inches;

         return input;           

      }

};

int main() {

   Distance D1(11, 10), D2(5, 11), D3;

   cout << "Enter the value of object : " << endl;

   cin >> D3;

   cout << "First Distance : " << D1 << endl;

   cout << "Second Distance :" << D2 << endl;

   cout << "Third Distance :" << D3 << endl;

   return 0;

}

Output:

Enter the value of object :

70

10

First Distance : F : 11 I : 10

Second Distance :F : 5 I : 11

Third Distance :F : 70 I : 10

 

Post a Comment

Thankyou

Previous Post Next Post