/****************************************************************
example 01 -- driver.cpp
    feet/inches manager
****************************************************************/
#include <iostream>
using namespace std;

//class definition
class length {
    private:
        int feet;
        int inches;
    public:
        length(const int& f = 0, const int& i = 0);
        void show(ostream& out = cout) {
            out << feet << '\'' << inches << '"';
        }
        void grow(const float& = 1.0);
};

length::length(const int& f, const int& i) {
    if (f > 0)
        feet = f;
    else
        feet = 0;

    if (i > 0) {
        feet += i / 12;
        inches = i % 12;
    }
    else
        inches = 0;
}

void length::grow(const float& f) {
    feet += (int)f;
    int temp = inches + f * 12;
    inches = temp % 12;
}

void main() {
    length joey(4,5);

    cout << "Joey's height was: ";
    joey.show();
    cout << endl;

    cout << "Then Joey grew 6 inches." << endl;
    joey.grow(0.5);

    cout << "Joey's new height was: ";
    joey.show();
    cout << endl;
}