Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Порядок выполнения работы. 1. Определить иерархию классов (в соответствии с вариантом)




 

1. Определить иерархию классов (в соответствии с вариантом).

2. Определить в классе статическую компоненту - указатель на начало связанного списка объектов и статическую функцию для просмотра списка.

3. Реализовать классы.

4. Написать демонстрационную программу, в которой создаются объекты различных классов и помещаются в список, после чего список просматривается.

5. Сделать соответствующие методы не виртуальными и посмотреть, что будет.

6. Реализовать вариант, когда объект добавляется в список при создании, т.е. в конструкторе (смотри пункт 5 следующего раздела).

Варианты заданий.

 

Перечень классов:

 

1) студент, преподаватель, персона, завкафедрой;

2) служащий, персона, рабочий, инженер;

3) рабочий, кадры, инженер, администрация;

4) деталь, механизм, изделие, узел;

5) организация, страховая компания, судостроительная компания, завод;

6) журнал, книга, печатное издание, учебник;

7) тест, экзамен, выпускной экзамен, испытание;

8) место, область, город, мегаполис;

9) игрушка, продукт, товар, молочный продукт;

10) квитанция, накладная, документ, чек;

11) автомобиль, поезд, транспортное средство, экспресс;

12) двигатель, двигатель внутреннего сгорания, дизель, турбореактивный двигатель;

13) республика, монархия, королевство, государство;

14) млекопитающие, парнокопытные, птицы, животное;

15) корабль, пароход, парусник, корвет.

Методические указания.

 

1. Для определения иерархии классов связать отношением наследования классы, для заданного варианта. Из перечисленных классов выбрать один, который будет стоять во главе иерархии. Это абстрактный класс.

2. Определить в классах все необходимые конструкторы и деструктор.

3. Пример определения статических компонентов:

static person* begin; // указатель на начало списка

static void print(void); // просмотр списка

4. Статическую компоненту-данное инициализировать вне определения класса, в глобальной области.

5. Для добавления объекта в список предусмотреть метод класса, т.е. объект сам добавляет себя в список. Например, a.Add() - объект a добавляет себя в список.

Включение объекта в список можно выполнять при создании объекта, т.е. поместить операторы включения в конструктор. В случае иерархии классов, включение объекта в список должен выполнять только конструктор базового класса. По возможности вы должны продемонстрировать оба этих способа.

6. Список просматривать путем вызова виртуального метода Show каждого объекта.

Содержание отчета.

 

1. Титульный лист: название дисциплины; номер и наименование работы; фамилия, имя, отчество студента; дата выполнения.

2. Постановка задачи. Следует дать конкретную постановку, т.е. указать, какие классы должны быть реализованы, какие должны быть в них конструкторы, компоненты-функции и т.д.

3. Иерархия классов в виде графа.

4. Определение пользовательских классов с комментариями.

5. Реализация конструкторов с параметрами и деструктора.

6. Реализация методов для добавления объектов в список.

7. Реализация методов для просмотра списка.

8. Листинг демонстрационной программы.

9. Объяснение необходимости виртуальных функций. Следует показать, какие результаты будут в случае виртуальных и не виртуальных функций.

 

Контрольные вопросы.

1. Как наследуются компоненты с правами доступа public, private и protected в производный класс и структуру?

2. Как устранить неоднозначности при множественном наследовании?

3. Наследование и порядок вызова конструкторов и деструкторов в производном классе.

4. Что такое виртуальные функции, как они описываются и вызывается?

5. Что такое чистые виртуальные функции и абстрактные классы?

6. Какие функции не могут быть виртуальными?

7. Как подавить виртуальность функции?

 


Лабораторная работа № 14

 

«ШАБЛОНЫ ФУНКЦИЙ И КЛАССОВ»

 

Цель. Получить практические навыки создания шаблонов классов и функций и использования их в программах С++. Создать шаблон заданного класса и использовать его для данных различных типов. Создать шаблон функции и использовать его для различных типов данных.

 





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


Дата добавления: 2016-11-02; Мы поможем в написании ваших работ!; просмотров: 2657 | Нарушение авторских прав


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

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

Начинать всегда стоит с того, что сеет сомнения. © Борис Стругацкий
==> читать все изречения...

2349 - | 2104 -


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

Ген: 0.011 с.