КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Описание сложных объектов
Описание сложных объектов составляется путем объявления и реализации простых классов и их включения в состав сложного класса. Например можно объявить класс для колеса, мотора, трансмиссии и затем объединить их в классе для автомобиля, реализуя общее правило – сложный объект состоит из множества простых объектов. Другой, более простой пример: прямоугольник состоит из отрезков прямых; каждый отрезок определен двумя точками; каждая точка определяется координатами x и y. Либо у сотрудника есть дата рождения и адрес – объекты отдельно разработанных классов.
//Классы с другими классами в качестве данных-членов #include <iostream> using namespace std; // объявление открытого класса для работника фирмы TEmployee без методов typedef unsigned long ULONG; typedef unsigned short USHORT; // Образование: высшее, среднее, специальное, начальное,... enum TEducation { High, Secondary, Special, Primary }; // Должность: администратор, служащий, рабочий, программист,... enum TPost { Administrator, Clerc, Worker, Programmer }; // описание объектов типа TDate (дата) class TDate { public: USHORT itsDay; // день USHORT itsMonth; // месяц USHORT itsYear; // год }; // описание объектов типа TAddress (адрес) class TAddress { public: char itsZipCode[11]; // почтовый код char itsStreet[21]; // улица char itsHouse[6]; // дом char itsFlat[4]; // квартира }; // описание объектов типа TEmployee (служащий) class TEmployee { // открытые члены-данные public: ULONG itsID; // табельный номер char itsSurname[21]; // фамилия char itsSex; // пол TDate itsBirthday; // дата рождения TAddress itsAddress; // адрес char itsPhone[9]; // телефон bool itsSmoke; // курит или нет bool itsFamily; // женат или нет TEducation itsEdu; // образование TPost itsPost; // должность double itsSalary; // зарплата }; // главная функция int main() { setlocale(LC_ALL, "Russian"); // для вывода на экран русского текста TEmployee e1; //создание объекта в стеке - мусор // Определение свойств объекта p1 - set e1.itsID=1000; strcpy(e1.itsSurname,"Ivanov"); e1.itsSex='м'; //доступ к данным сложных объектов e1.itsBirthday.itsDay=1; e1.itsBirthday.itsMonth=10; e1.itsBirthday.itsYear=1985; strcpy(e1.itsAddress.itsZipCode,"12-2345-ab"); // Получение свойств объекта p1 - get cout << e1.itsID << '\t' << e1.itsSurname << '\t' << e1.itsSex << endl; //доступ к данным сложных объектов cout << e1.itsBirthday.itsDay << '\t' << e1.itsBirthday.itsMonth << '\t' << e1.itsBirthday.itsYear << '\t' << e1.itsAddress.itsZipCode << endl; cin.get(); return 0; //... происходит уничтожение стековых объектов }
Дата добавления: 2014-01-03; Просмотров: 360; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |