Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_ООП_1-3иприм.doc
Скачиваний:
5
Добавлен:
15.11.2019
Размер:
248.83 Кб
Скачать

Лабораторные работы 1-3 по ооп

Работы 1 – 3 выполняются на основе готовой лабораторной работы “Разработка функций по обработке структурных типов данных “ - № 13 по программированию, т.е. решают ту же самую задачу, только на базе классов. При этом,

в лаб. №1 создается свой собственный класс в минимальном комплекте (включая описание полей данных, конструкторов, деструктора и один – два простых метода) и с этим классом выполняется ряд упражнений.

- в лаб. №2 осуществляется перегрузка функций и перегрузка операций для своего или других классов.

- наконец в лаб3 создается окончательно полноценный класс со всеми возможными и необходимыми компонентами, включая перегрузку операций вставки/извлечения <</>> объектов своего класса в стандартные потоки ввода/вывода.

Темы практических занятий, лабораторных работ и домашних заданий

Практические занятия

1. Объектно-ориентированное проектирование классов

2. Особенности перегрузки конструкторов и операции =

3. Объектно-ориентированное проектирование иерархии классов

Лабораторные работы

1. Исследование классов и объектов (4 ч)

2. Перегрузка функций и операций (2 ч)

3. Разработка собственных классов (4 ч) (Создание полноценного класса со всеми необходимыми методами, операциями и конструкторами)

4. Полиморфизм и виртуальные функции 2ч (механизмы раннего и позднего связывания.)

5. Создание иерархии наследуемых классов (4 ч)

Домашние задания

Дз1. Перегрузка операций <<\>>

Дз2. Создание шаблонов функций и классов

Лабораторная работа № 1. Исследование классов и объектов

Повторить теоретические вопросы:

1. Понятия класса и объекта. Член-данные и член-функции (методы). Статус доступа.

2. Конструкторы и деструкторы, из разновидности: - конструктор по умолчанию, - конструктор копирования, конструктор-инициализатор.

3. Операции доступа к полям и к методам класса. Операция уточнения области видимости (::).

4. Статические данные и функции (методы) класса.

5. Дружественные функции, статус их доступа к данным и к методам класса..

Ознакомиться и провести эксперименты с комплектами учебных файлов:

1. файлы comp1.cpp, comp2.cpp compL2.cpp - простейшие классы комплексных чисел

2. комплект файлов stroka.cpp и stroki.cpp - класс “строка символов” с двумя конструкторами, а так же файл conkat.cpp с перегруженной операцией + (конкатенация строк).

3. комплект файлов goods.cpp, doods_v.cpp - класс “товары в магазине” (со статической переменной)

4. комплект файлов point.h, point.cpp, pointmai.cpp - класс точка на экране

5. Файлы CMPLX.CPP и CMPLX.H с дружественными операциями-функциями (+ - * / ) для комплексных чисел.

Справки и пояснения по учебным файлам

После перегрузки операции + в Си-программе появляется возможность склеивания строк как в Бейсике.

Обратите внимание, что операция + перегружена для данных типа (класса) stroka и не поддерживает склейку символьных массивов, хотя это вроде бы тоже строки.

Так же обратите внимание (и испытайте), что к перегруженной операции-функции можно обращаться как к обычной функции с именем “operator + и указанием аргументов в скобках (аргументы) по шаблону :

Новая строка = operator + (строка1, строка2); - если перегружена вне класса, и

Суть работы № 1, в соответствии с ее названием, заключается в проведении экспериментов (опытов) с классами и объектами, для чего студенту требуется изменить (модернизировать) как классы, так главные программы, чтобы понять синтаксис определения классов и доступа к его компонентам. Некоторые опыты очень просты, о них достаточно упомянуть в отчете только результаты. Для других упражнений необходимо привести тексты модернизированных фрагментов программ. Имена модернизированных программ, во избежание путаницы, лучше изменить, не забыв эти изменения и в директивах include.