Руководство пользователя _РП_2014 (1079891), страница 3
Текст из файла (страница 3)
Операции класса StreetПрототип оператора присваивания улиц:Street operator =(Street & S);Пример применения перегруженного оператора присваивания улиц:Home H2("Жилой","д.2", 7,2,3, fast , 5);Home H3("Магазин", "д.3", 3);H3.setAllParam("Магазин", "д.3", 1,2,3,fast, 3 , true);Street S1("Улица 1" , 15);Street SNew("Улица" , 15);S1.add(&H2);S1.add(&H3);S1.printOn(cout);SNew.printOn(cout);SNew = S1;SNew.printOn(cout);S1.del(&H3 , head);1314getchar();S1.SetNameStreet("Новое название S1 ");cout << "После изменения S1 (название и удален первый)!!!!" << endl;cout << "S1!!!!" << endl;S1.printOn(cout);cout << "SNew!!!!" << endl;SNew.printOn(cout);Создаются две улицы S1(со всеми параметрами и двумя домами Н2 и Н3) и SNew(сминимумом параметров). Далее выполняется операция присваивания домов –“=”. Исходныеулицы и улица SNew после присваивания распечатывается.
Далее улица S1 изменяется – изнее удаляется один дом Н3. После этого обе улицы снова распечатываются (printOn). Послеэтого S1 изменяется, а SNew остается неизменной. При сложении улиц складываются всепараметры улиц, включая и имена. Списки улиц объединяются. Формируется новый типулицы и устанавливаются признаки ремонта домов улицы и ремонта самой улицы.5.6. Дружественные функции класса HomeПрототип оператора сложения улиц:friend Street & operator +( Street & X , Street & Y );Пример применения перегруженного оператора сложения улиц:cout << endl << "******* Создание улиц *********" << endl;Home H2("Жилой","д.2", 7,2,3, fast , 5);Home H3("Магазин", "д.3", 3);Home H4("ДЭЗ", "д.4а", 4,2);Street Astreet("Первая", 20);Astreet.add(&H2 , head);Astreet.add(&H3 , head);Astreet.add(&H4 , head);Astreet.printOn(cout);Home H5("Аптека","д.2", 7,2,3, fast , 5);Home H6("Перекресток", "д.3", 3);Home H7("Детский сад", "д.4а", 4,2);Street Dstreet("Вторая ", 20);Dstreet.add(&H5 , tail);Dstreet.add(&H6 , tail);Dstreet.add(&H7 , tail);Dstreet.printOn(cout);getchar();cout << endl << "******* Сложение *********" << endl;Street Sumstreet(" ", 20);Sumstreet.printOn(cout);Sumstreet = Astreet + Dstreet;Sumstreet.printOn(cout);getchar();Создаются две улицы: Astreet с домами Н2, Н3 и Н4, добавленными в голову (head)методом (add), и Dstreet с домами Н5, Н6 и Н7, добавленными в хвост (tail) методом (add).Описывается улица Sumstreet и формируется как сумма с помощью перегруженнойоперации “+”.
Исходные улицы и результирующая улица распечатываются стандартнымметодом printOn. Далее распечатываются параметры улицы с помощью специальныхметодов (см. п.п. 2.14).14156. ОТКЛЮЧЕНИЕ СИСТЕМЫ КЛАССОВЧтобы отключить данную систему классов, надо с помощью системной функцииудаления (или файл менеджера) удалить файлы, перечисленные в пункте 4 данногодокумента, из каталогов , куда они были скопированы.7. СООБЩЕНИЙ ОБ ОШИБКАХ И ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИВ системе классов улиц и домов не предусмотрена обработка исключительныхситуаций и выдача диагностических сообщений. В программах, разработанных свключением этой системы классов, может быть предусмотрена обработка исключительныхситуаций и выдача сообщений об ошибках.
Выдаваемые системные диагностическиесообщения и возникающие системные исключительные ситуации описаны в документациина систему программирования (MS VS 2005).15.