- •Московский государственный технический университет им. Н.Э.Баумана
- •Комплексная лабораторная работа по дисциплине пкш
- •1 Назначение и условия применения программы
- •2 Подключение системы классов и диаграмма классов
- •3 Работа с системой классов
- •4 Общие сведения о системе классов улиц и домов
- •5 Диаграмма классов улиц и домов
- •8 Класс домов - Home
- •9 Данные и переменные класса Home
- •6 Подключение системы классов в программу
- •7 Общие данные и переменные
- •10 Конструкторы класса Home
- •11 Деструктор класса Home
- •12 Методы класса Home
- •13 Операции класса Home
- •14 Дружественные функции класса Home
- •15 Класс Улиц - Street
- •16 Отключение системы классов
- •17 Сообщений об ошибках и исключительные ситуации
10 Конструкторы класса Home
В классе Home описаны следующие конструкторы:
№ п/п |
Прототип |
Тип возврата |
Назначение /Параметры |
|
|
Home() |
Home & |
Нет |
|
|
Home( Home & H) |
Home & |
Новый на основе ссылки на объект типа дом: Home & |
|
|
Home( Home * pH) |
Home & |
Новый на основе указателя на объект типа дом: Home * |
|
|
Home(const char *HomName, const char *Number) |
Home & |
Новый с параметрами: HomName - имя Number - номер дома |
|
|
Home(const char *HomName, const char *Number, int Numb) |
Home & |
Новый с параметрами: HomName - имя дома, Number - номер дома Numb - номер для поиска |
|
|
Home(const char *HomName, const char *Number, int Numb, int Etag, int Men=0,HomeType Type = fast,int Apart=0) |
Home & |
Новый с параметрами: HomName - имя дома, Number - номер дома Numb - номер для поиска, Etag - этажность, Men - число жителей, Type – тип дома, Apart - число квартир |
Примеры использования конструкторов:
Конструктор без параметров:
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.
