- •Лабораторная работа № 1
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 2
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 3
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 4 понятие класса
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 5 статические методы класса
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 6 механизм наследования
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 7 виртуальные методы класса
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Лабораторная работа № 8
- •Теоретические сведения
- •Программа работы
- •Контрольные вопросы
- •Библиографический список
- •Содержание
Программа работы
Создать новый проект и сохранить все его файлы в папке с именем ‘…\Лабораторная работа № 6’.
Создать новый модуль Unit2и в его заголовочной части с расширениемhобъявить класс с любым именем, который будет содержать все разделы доступа.
В каждом разделе, начиная с private, объявить по одному полю с различными именами и типамиchar,intиdouble.
Создать новый модуль Unit3и подключить к нему модульUnit2в заголовочном разделе с расширениемh.
Объявить в этом разделе модуля Unit3второй класс, который будет наследником первого класса с режимом наследованияpublic, и не будет содержать ни одного элемента.
Подключить модуль Unit3к модулю главной формыUnit1и создать на ней компонентыEdit1,Edit2и кнопкуButton1.
В обработчике нажатия кнопки Button1объявить объектную переменную с типом созданного класса-наследника, создать объект и попытаться обратиться ко всем его полям.
На основе этой попытки записать в отчет объявленные классы, а также таблицу доступа к унаследованным полям объекта из модуля Unit1. Проинициализировать первое доступное поле объекта значением, которое будет задано пользователем в компонентеEdit1, вывести в компонентEdit2значение самого поля после инициализации и запустить программу на выполнение.
Записать в отчет обработчик нажатия кнопки Button1и результат выполнения программы.
В классе-наследнике, изменить режим наследования с publicнаprotectedи попытаться обратиться ко всем полям класса наследника.
На основе этой попытки записать в отчет класс наследник, а также таблицу доступа к унаследованным полям объекта из модуля Unit1.
В классе-наследнике, изменить режим наследования с protectedнаprivateи попытаться обратиться ко всем полям класса наследника.
На основе этой попытки записать в отчет класс наследник, а также таблицу доступа к унаследованным полям объекта из модуля Unit1.
В классе-наследнике, изменить режим наследования с privateнаpublicи объявить конструктор класса.
В исполняемом разделе модуля Unit3с расширениемcppопределить конструктор класса наследника и попытаться обратиться ко всем его полям.
На основе этой попытки записать в отчет класс наследник, а также таблицу доступа к унаследованным полям объекта из конструктора класса.
Повторить предыдущий пункт для режимов наследования protectedиprivate.
Создать новый модуль Unit4и подключить к нему модульUnit3в заголовочном разделе с расширениемh.
Объявить в этом разделе модуля Unit4третий класс, который будет наследником второго класса с режимом наследованияpublic, и объявить в нем конструктор.
В исполняемом разделе модуля Unit4с расширениемcppопределить конструктор класса пранаследника и попытаться обратиться ко всем его полям.
На основе этой попытки записать в отчет класс пранаследник, а также таблицу доступа к унаследованным полям из конструктора класса пранаследника.
Повторить предыдущий пункт для режимов наследования protectedиprivateкласса наследника, в модулеUnit3.
Разработать программу, которая вычисляла бы площадь и периметр круга или квадрата. Для этого добавить к проекту новую форму, сделать её главной на закладке Forms->Main Form, выполнив пункт менюProject->Options, и разместить на ней компоненты Shape1, RadioGroup1, Label1– Label3 и Edit1 – Edit3.
В обработчике выбора кнопок компонента RadioGroup1предусмотреть изменение формы фигуры (свойствоShapeкомпонентаShape1) и надписиLabel1для компонентаEdit1(радиусилидлинастороны).
В обработчике нажатия клавиши EnterкомпонентаEdit1предусмотреть объявление объекта с базовым типом, создание объекта с текущим типом выбранной фигуры и вывод её площади и периметра в компонентыEdit2иEdit3.
При разработке программы учесть, что поле FSizeзадается в конструкторе базового классаTShape, а два классаTCircleиTSquareнаследуют его, добавляя методы нахождения площади (Area) и периметра (Perimeter) соответствующих фигур.
Протестировать разработанную программу и записать в отчет объявленные классы, их методы, а также обработчик нажатия клавиши EnterкомпонентаEdit1.