Шаблон_Руководство пользователя (РП) (1079897), страница 2
Текст из файла (страница 2)
Home H1;
Конструктор с именем и номером символьным:
Home H2("Жилой","д.2");
Конструктор с именем, номером символьным и номером для поиска:
Home H3("Жилой", "д.3", 3);
Конструктор с именем, номером символьным, номером для поиска и этажностью:
Home H4("Жилой", "д.4а", 4,2);
Конструктор с именем, номером символьным, номером для поиска, этажностью и числом жителей:
Home H5("ДЭЗ", "д.5", 5,2,3);
Конструктор с именем, номером символьным, номером для поиска, этажностью, числом жителей и типом дома:
Home H6("Жилой", "д.6", 6,2,3, fast);
Конструктор с именем, номером символьным, номером для поиска, этажностью, числом жителей, типом дома и числом квартир:
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
Примеры использования конструкторов копирования:
Конструктор копирования на основе ссылки:
Home H6("ДЭЗ", "д.5", 5,2,3);
Home Test(H5);
H5.printOn(cout);
Test.printOn(cout);
Конструктор копирования на основе ссылки и динамической памяти:
Home *pHome = new Home (H6);
H6.printOn(cout);
pHome->printOn(cout);
delete pHome;
Конструктор копирования на основе ссылки и операции присваивания “-”:
Home Temp;
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
Temp = H7;
H7.printOn(cout);
Temp.printOn(cout);
Конструктор копирования на основе указателя и динамической памяти:
Home H6("ДЭЗ", "д.5", 5,2,3);
Home *pHome = new Home (H6);
Home *pHome1 = new Home (* pHome);
pHome->printOn(cout);
pHome1->printOn(cout);
delete pHome;
delete pHome1;
11 Деструктор класса Home
Прототип деструктора:
~Home();
Пример явного и неявного использования деструктора:
{
Home *pHome = new Home (H6);
pHome->printOn(cout);
delete pHome;
}
Неявный вызов деструктора производится при завершении блока операторов . Явный вызов деструктора производится при выполнении операции delete.
12 Методы класса Home
В таблице представлены методы класса Home.
№ п/п | Прототип | Тип возврата | Назначение | Параметры |
| void setName(const char *HomName , const char *Number=NULL) | void | Установить имя дома и номер дома | HomName - имя дома и Number - номер дома |
| const char *getName() | const char * | Получить имя дома | Нет |
| const char *getNumb() | const char * | Получить номер дома | Нет |
| int getNo() | int | Получить номер дома для поиска | Нет |
| void getParam(int & iH, int & Etag ,int & Men ,HomeType & Type, int & Apart ) | void | Получить параметры дома | iH -номер дома, Etag - этажность, Men - число жителей, Type – тип (значение типа дома выбирается из набора перечисления HomeType см. выше), Apart - число квартир |
| void setParam(int iH, int Etag ,int Men ,HomeType Type, int Apart ) | void | Задать новые параметры дома | iH -номер дома, Etag - этажность, Men - число жителей, Type – тип (значение типа дома выбирается из набора перечисления HomeType см. выше), Apart - число квартир |
| void setAllParam(const char *HomName , const char *Number, int iH, int Etag , int Men ,HomeType Type, int Apart , BOOL rem = false) | void | Задать все новые параметры дома | HomName - имя дома, Number - имя дома для поиска iH -номер дома, Etag - этажность, Men - число жителей, Type – тип (значение типа дома выбирается из набора перечисления HomeType см. выше), Apart - число квартир rem -признак ремонта |
| virtual void printOn(ostream & out) | void | Печать в стандартный поток | Out – тип ostream |
Примеры использования методов класса Home:
Установка имени дома символьного:
Temp.setName("Университет");
Temp.printOn(cout);
Установка имени и номера дома символьного:
Temp.setName("Магазин" ,"д.11/12");
Temp.printOn(cout);
Получение имени и номера дома символьного:
cout << "Name дома = "<< Temp.getName() << endl;
Получение номера дома символьного:
cout << "Номер дома = "<< Temp.getNumb() << endl;
Получение номера дома для поиска:
cout << "Номер в списке = "<< Temp.getNo() << endl;
Получение параметров дома:
cout << "Параметры: "<< endl;
int iH, Etag , Men , Apart ;
HomeType Type;
Temp.getParam(iH , Etag, Men, Type , Apart);
cout << "Номер -" << iH <<
" Этажей -" << Etag << " Жителей -" << Men << endl;
if (Type == fast)
cout << "Тип дома - простой ";
if (Type == multiple)
cout << "Тип дома - много строений ";
if (Type == complex)
cout << "Тип дома - сложный ";
cout << " Число квартир - " << Apart << endl;
Установка параметров дома:
Temp.setParam(1,2,3,fast, 5 );
Temp.printOn(cout);
Установка всех параметров дома:
Temp.setAllParam("Аптека", "10/8 кв.3", 11,12,13,fast, 15, true );
Temp.printOn(cout);
13 Операции класса Home
Прототип перегруженного оператора присваивания:
Home operator =(Home & H );
Пример использования перегруженного оператора присваивания:
Home Temp;
Home H7("Магазин", "д.7", 7,2,3, multiple , 5);
Temp = H7;
H7.printOn(cout);
Temp.printOn(cout);
14 Дружественные функции класса Home
Прототип перегруженного оператора сложения:
friend Home & operator +(Home & H1 , Home & H2)
Пример использования перегруженного оператора сложения:
Home H1("Жилой", "д.6", 6,2,3, fast , 3);
Home H2("Жилой", "д.7", 9,10,11, fast , 5);
Home Temp;
Temp = H1 + H2;
H1.printOn(cout);
H2.printOn(cout);
Temp.printOn(cout);
При сложении двух домов суммируются: число квартир, число жителей, имена домов, устанавливается признак ремонта по логике “ИЛИ”. Этажность определяется по числу этажей первого дома. Тип дома задается как сложный (complex).
(В разделе описываются классы их методы и свойства из части интерфейса. Скрытая часть, часть реализации, обычно в РП не показывается. Приводятся примеры применения коаждого метода и свойства.)
15 КЛАСС Улиц - Street
(В разделе описываются классы их методы и свойства из части интерфейса. Скрытая часть, часть реализации, обычно в РП не показывается. Приводятся примеры применения каждого метода и свойства.)
16 ОТКЛЮЧЕНИЕ СИСТЕМЫ КЛАССОВ
Чтобы отключить данную систему классов, надо с помощью системной функции удаления (или файл менеджера) удалить файлы, перечисленные в пункте 4 данного документа, из каталогов , куда они были скопированы.
(В разделе описываются шаги для удаления классов ПО.)
17 СООБЩЕНИЙ ОБ ОШИБКАХ И ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ
В системе классов улиц и домов не предусмотрена обработка исключительных ситуаций и выдача диагностических сообщений. В программах, разработанных с включением этой системы классов, может быть предусмотрена обработка исключительных ситуаций и выдача сообщений об ошибках. Выдаваемые системные диагностические сообщения и возникающие системные исключительные ситуации описаны в документации на систему программирования (MS VS 2005).
(В разделе описываются диагностические сообщения об ошибках и исключительных ситуациях, которые могут возникнуть при использовании вашей системы классов.)
11