friend overloaded + operator : Plus « Overload « C++






friend overloaded + operator

  
#include <iostream>  
using namespace std;  
class Distance{  
   private:  
      int feet;  
      float inches;  
   public:  
      Distance(){ 
         feet = 0; 
         inches = 0.0; 
      }  
      Distance( float fltfeet ){                        
         feet = int(fltfeet);     
         inches = 12*(fltfeet-feet);
      }  
      Distance(int ft, float in){ 
         feet = ft; 
         inches = in; 
      }  
      void showdist(){ 
         cout << feet << "\'-" << inches << '\"'; 
      }  
      friend Distance operator + (Distance, Distance); 
};
Distance operator + (Distance d1, Distance d2){  
   int f = d1.feet + d2.feet;        
   float i = d1.inches + d2.inches;  
   if(i >= 12.0){ 
      i -= 12.0; f++;  
   }        
   return Distance(f,i);          
}  
int main(){  
   Distance d1 = 2.5;
   Distance d2 = 1.25;
   Distance d3;  
   cout << "\nd1 = "; 
   d1.showdist();  
   cout << "\nd2 = "; 
   d2.showdist();  
  
   d3 = d1 + 10.0;
   cout << "\nd3 = "; d3.showdist();  
   d3 = 10.0 + d1;
   cout << "\nd3 = "; d3.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 adds two Distances
8.overloaded '+' operator concatenates strings
9.+ is overloaded for three_d + three_d and for three_d + int.
10.Define operator +(plus) and cast to double operator
11.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.