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