C++ const member functions and const arguments to member functions

Description

C++ const member functions and const arguments to member functions

#include <iostream>
using namespace std;
class Measure/*from ww w.  ja v  a  2 s.  c o  m*/
{
   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 << '\"'; 
   }
   Measure add_dist(const Measure&) const;     //add
};
//add this distance to d2, return the sum
Measure Measure::add_dist(const Measure& d2) const
{
   Measure temp;                     //temporary variable
   // feet = 0;                          //ERROR: can't modify this
   // d2.feet = 0;                       //ERROR: can't modify d2
   temp.inches = inches + d2.inches;  //add the inches
   if(temp.inches >= 12.0)            //if total exceeds 12.0,
   {                               //then decrease inches
       temp.inches -= 12.0;            //by 12.0 and
       temp.feet = 1;                  //increase feet
    }                               //by 1
    temp.feet += feet + d2.feet;       //add the feet
    return temp;
}
int main()
{
    Measure dist1, dist3;          //define two lengths
    Measure dist2(11, 6.25);       //define, initialize dist2
    dist1.getdist();                //get dist1 from user
    dist3 = dist1.add_dist(dist2);  //dist3 = dist1 + dist2
    //display all lengths
    cout << "\ndist1 = ";  dist1.showdist();
    cout << "\ndist2 = ";  dist2.showdist();
    cout << "\ndist3 = ";  dist3.showdist();
    cout << endl;
    return 0;
}



PreviousNext

Related