#include <iostream>
using namespace std;
 
class Distance
{
private:
 int miles;
 int meter;            // 1 mile = about 1609 metres
 double centimeter;    // 1 meter = 100 centimeter
public:
    Distance() : miles(0), meter(0), centimeter(0.0) { ; };
 Distance(int mi,int m, double cm) : miles(mi), meter(m), centimeter(cm) { ; };
 
 void setDist(int mi,int m, double cm) { miles=mi, meter=m, centimeter=cm; };
 void setMiles(int mi) { miles=mi; };
 void setMeter(int m) { meter=m; };
 void setCentimeter(double cm) { centimeter=cm; };
 int getMiles() { return miles; };
 int getMeter() { return meter; };
 double getCentimeter() { return centimeter; };
 
 double sum_centimeter() const { return ((miles * 1609) + meter) * 100 + centimeter; };
 
friend Distance operator+(const Distance& a, const Distance& b);
friend Distance operator-(const Distance& a, const Distance& b);
 
    bool operator==(const Distance& b) const;
    bool operator>(const Distance& b) const;
    bool operator<(const Distance& b) const { return ! (*this > b); };
 
friend ostream& operator <<(ostream& os, const Distance& d);
};
 
Distance operator+(const Distance& a, const Distance& b)
{
    Distance c;
    c.miles = a.miles + b.miles;
    c.meter = a.meter + b.meter;
    c.centimeter = a.centimeter + b.centimeter;
    if( c.centimeter >= 100.0 ) {
        c.centimeter -= 100.0;
        ++c.meter;
    }
    return c;
}
 
Distance operator-(const Distance& a, const Distance& b)
{
    Distance c;
    c.miles = a.miles - b.miles;
    c.meter = a.meter - b.meter;
    c.centimeter = a.centimeter - b.centimeter;
    return c;
}
 
bool Distance::operator==(const Distance& b) const
{
    return (this->miles==b.miles && this->meter==b.meter && this->centimeter==b.centimeter);
}
 
bool Distance::operator>(const Distance& b) const
{
    return (this->sum_centimeter() > b.sum_centimeter());
}
 
ostream& operator <<(ostream& os, const Distance& d)
{
 cout << d.miles << " miles " << d.meter << " meters " << d.centimeter << " centimeters";
 return os;
}
 
int main()
{
    Distance a(1,2,4);
    Distance b(1,1,4);
    string boolstr[] = { "FALSE", "TURE" };
    
    cout << "DISTANCE CALCULATOR" << endl << endl;
    cout << "Given :" << endl;
    cout << "  Distance a(1,2,4)" << endl;
    cout << "  Distance b(1,1,4)" << endl;
    cout << endl;
    cout << "The sum of distance is        : " << a+b << endl;
    cout << "The difference of distance is : " << a-b << endl;
    cout << endl;
    cout << "CONTITIONAL OPERATORS" << endl;
    cout << endl;
    cout << "The statement distance a==b is : " << boolstr[a==b] << endl;
    cout << "The statement distance a>b is  : " << boolstr[a>b] << endl;
    cout << "The statement distance a<b is  : " << boolstr[a<b] << endl;



맨밑 세줄 오류나는데 이유좀