// engpleq.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 << feet << "\'-" << inches << '\"'; } // сложение с присвоением bool operator+= ( Distance ) const; }; /////////////////////////////////////////////////////////// void Distance::operator+= ( Distance d2 ) { feet += d2.feet; // складываем футы inches += d2.inches; // складываем дюймы if ( inches >= 12.0 ) // если дюймов больше 12 { inches -= 12.0; // то уменьшаем дюймы на 12 feet++; // увеличиваем футы на 1 } } /////////////////////////////////////////////////////////// int main ( ) { Distance dist1; // определяем переменную dist1.getdist ( ); // и вводим информацию cout << "\ndist1 = "; dist1.showdist ( ); Distance dist2 ( 11, 6.25 ); // описываем и инициализируем другую переменную cout << "\ndist2 = "; dist2.showdist ( ); dist1 += dist2; // dist1 = dist1 + dist2 cout << "\nПосле добавления:"; cout << "\ndist1 = "; dist1.showdist ( ); cout << endl; return 0; }