Answer:
Output:<em> </em><em>15 11/16 inches</em>
Explanation:
#include <iostream>
using namespace std;
////////////////////////////////////////////////////////////////////////
class InchSize {
public:
InchSize(int wholeInches = 0, int sixteenths = 0);
void Print() const;
InchSize operator+(InchSize rhs);
private:
int inches;
int sixteenths;
};
InchSize InchSize::operator+(InchSize rhs) {
InchSize totalSize;
totalSize.inches = inches + rhs.inches;
totalSize.sixteenths = sixteenths + rhs.sixteenths;
// If sixteenths is greater than an inch, carry 1 to inches.
if (totalSize.sixteenths >= 16) {
totalSize.inches += 1;
totalSize.sixteenths -= 16;
}
return totalSize;
}
InchSize::InchSize(int wholeInches, int sixteenthsOfInch) {
inches = wholeInches;
sixteenths = sixteenthsOfInch;
}
void InchSize::Print() const {
cout<<inches<<" "<<sixteenths<<"/16 inches"<<endl;
}
////////////////////////////////////////////////////////////////////////
int main() {
InchSize size1(5, 13);
InchSize size2(9, 14);
InchSize sumSize;
sumSize = size1 + size2;
sumSize.Print();
return 0;
}
////////////////////////////////////////////////////////////////////////
sumSize variable was printed in the end. Print() prints the calling object's inches and sixteenths variables' values.
sumSize's inches is equal to size1 plus size2's inches.
Because the sum of sixteenths was greater than 16, sumSize's sixteenth was decreased by 1 and inches was increased by 1.