C++ Operator Overload '<' operator compares two Measures

Description

C++ Operator Overload '<' operator compares two Measures

#include <iostream>
using namespace std;
class Measure//from   w w  w .j a va2 s  .  c om
{
   private:
       int feet;
       float inches;
   public:
       Measure() : feet(0), inches(0.0)
       {  }
       Measure(int ft, float in) : feet(ft), inches(in)
       {  }
       void getdist()              //get length from user
       {
          cout << "\nEnter feet: ";  cin >> feet;
          cout << "Enter inches: ";  cin >> inches;
       }
       void showdist() const
       { cout << feet << "\'-" << inches << '\"'; }
       bool operator < (Measure) const; //compare distances
};
//compare this distance with d2
bool Measure::operator < (Measure d2) const  //return the sum
{
   float bf1 = feet + inches/12;
   float bf2 = d2.feet + d2.inches/12;
   return (bf1 < bf2) ? true : false;
}
int main()
{
   Measure dist1;                 //define Measure dist1
   dist1.getdist();                //get dist1 from user
   Measure dist2(6, 2.5);         //define and initialize dist2

   cout << "\ndist1 = ";  dist1.showdist();
   cout << "\ndist2 = ";  dist2.showdist();
   if( dist1 < dist2 )             //overloaded '<' operator
      cout << "\ndist1 is less than dist2";
   else
      cout << "\ndist1 is greater than (or equal to) dist2";
   cout << endl;
   return 0;
}



PreviousNext

Related