//ex8_1.cpp //перегружаемая операция '-' находит разность расстояний #include using namespace std; /////////////////////////////////////////////////////////// class Distance //Класс английских расстояний { private: int feet; float inches; public: //конструктор без аргументов Distance():feet(0),inches(0.0) {} //конструктор (два аргумента) Distance(int ft,float in):feet(ft),inches(in) {} void getdist() //получить расстояние от пользователя { cout <<"\nВведите число футов:";cin >>feet; cout <<"Число дюймов:";cin >>inches; } void showdist() //вывести расстояние {cout <=12.0) //если сумма дюймов превышает 12.0, { // уменьшить число дюймов i -=12.0; // на 12.0 и f++; // увеличить число футов н 1 } //вернуть временное значение расстояния, return Distance(f,i); // равное сумме } //--------------------------------------------------------- //вычитание d2 из расстояния Distance Distance::operator-(Distance d2)//вернуть разность { int f =feet - d2.feet; //разность футов float i =inches - d2.inches; //разность дюймов if(i <0) //если число дюймов меньше 0, { // увеличить их количество на i +=12.0; //12.0 и f--; //уменьшить число футов на 1 } //вернуть временное расстояние, return Distance(f,i); // равное разности } /////////////////////////////////////////////////////////// int main() { Distance dist1,dist3; //определить расстояния dist1.getdist(); //получить dist1 от пользователя Distance dist2(3,6.25); //определить, инициализировать //dist2 dist3 =dist1 - dist2; //разность //вывести все расстояния cout <<"\ndist1 =";dist1.showdist(); cout <<"\ndist2 =";dist2.showdist(); cout <<"\ndist3 =";dist3.showdist(); cout <