Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Данные и переменные класса Home




 

В классе Home объявлены следующие свойства доступные пользователю:

Переменная Тип свойства Защита Назначение
Home_Number char* public Номер дома (имя)
iHome int public Номер дома числовой
EtagCount int public Число этажей
MenCount int public Число жителей
TypeHome HomeType public Тип дома (перечисление: простой, многокорпусный, сложный)
NumbApartament int public Число квартир
HomeRemont   BOOL   public   Признак необходимости ремонта дома

 

 

Конструкторы класса 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;

 

Деструктор класса Home

Прототип деструктора:

~ Home ();

Пример явного и неявного использования деструктора:

{

Home *pHome = new Home (H6);

pHome->printOn(cout);

delete pHome;

}

Неявный вызов деструктора производится при завершении блока операторов. Явный вызов деструктора производится при выполнении операции delete.

 

Методы класса 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);

 

Операции класса Home

 

Прототип перегруженного оператора присваивания:

Home operator =(Home & H);

Пример использования перегруженного оператора присваивания:

Home Temp;

Home H7("Магазин", "д.7", 7,2,3, multiple, 5);

Temp = H7;

H7.printOn(cout);

Temp.printOn(cout);

 





Поделиться с друзьями:


Дата добавления: 2017-04-15; Мы поможем в написании ваших работ!; просмотров: 265 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наглость – это ругаться с преподавателем по поводу четверки, хотя перед экзаменом уверен, что не знаешь даже на два. © Неизвестно
==> читать все изречения...

2675 - | 2239 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.