overloaded '+' operator adds two Distances : Plus « Overload « C++






overloaded '+' operator adds two Distances

  
#include <iostream>
using namespace std;

class Distance
{
   private:
      int feet;
      float inches;
   public:
      Distance() : feet(0), inches(0.0){  }
      Distance(int ft, float in) : feet(ft), inches(in)  {  }
      void getdist(){
         cout << "\nEnter feet: ";  cin >> feet;
         cout << "Enter inches: ";  cin >> inches;
      }
      void showdist() const { cout << feet << "\'-" << inches << '\"'; }

      Distance operator + ( Distance ) const;
};

Distance Distance::operator + (Distance d2) const{
   int f = feet + d2.feet;
   float i = inches + d2.inches;
   if(i >= 12.0){
      i -= 12.0;
      f++;
   }
   return Distance(f,i);
}
int main()  {
   Distance dist1, dist3, dist4;
   dist1.getdist();

   Distance dist2(11, 6.25);

   dist3 = dist1 + dist2;

   dist4 = dist1 + dist2 + dist3;

   cout << "dist1 = ";  dist1.showdist(); cout << endl;
   cout << "dist2 = ";  dist2.showdist(); cout << endl;
   cout << "dist3 = ";  dist3.showdist(); cout << endl;
   cout << "dist4 = ";  dist4.showdist(); cout << endl;
   return 0;
}
  
    
  








Related examples in the same category

1.Overload the + relative to MyClass.Overload the + relative to MyClass.
2.Overload + for 'ob + int' as well as 'ob + ob'.Overload + for 'ob + int' as well as 'ob + ob'.
3.String class with custom +/- operator
4.additional meanings for the + and = operations
5.overload the "+" operator so that several angles, in the format degrees minutes seconds, can be added directly.
6.Friendly operator+
7.overloaded '+' operator concatenates strings
8.+ is overloaded for three_d + three_d and for three_d + int.
9.Define operator +(plus) and cast to double operator
10.Overloading the + (or any other binary operator) using a friend allows a built-in type to occur on the left or right side of the operator.
11.friend overloaded + operator