Данные и переменные класса 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);

Наши рекомендации