Хелпикс

Главная

Контакты

Случайная статья





Лабораторная работа 4. Наследование, полиморфизм



Лабораторная работа 4. Наследование, полиморфизм

Цель работы

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

Задание

Для выполнения задания создать в среде Borland C++ Builder проект, включающий форму с элементами пользовательского интерфейса для инициализации действий (кнопки TButton), ввода данных и отображения результатов (поля TEdit).

Программный код для реализации указанных в задании действий включается в обработчики события – нажатия соответствующей кнопки.

1 Создание иерархии классов

Разработать иерархию классов для описания некоторых выбранных геометрических объектов (пример: ФИГУРА – ОБЪЕМНАЯ ФИГУРА - ЦИЛИНДР, ФИГУРА – ПЛОСКАЯ ФИГУРА – КРУГ и т. п. ). На нижнем уровне иерархии иметь хотя бы два класса (пример: ЦИЛИНДР и КОНУС). Определить конструкторы и деструкторы. Определить методы (например площадь поверхности, объем), которые будут доступны пользователям.

Включить в проект файл заголовка «class. h», в котором будут содержаться декларации классов. Для избежания многократного включения при трансляции кода заголовка использовать директивы условной трансляции.

2 Переопределение методов

Переопределить один из методов базового класса (например: площадь поверхности, объем) в производных классах. Использовать раннее связывание.

Пример.

 

class Figure

{

...

public:

float Area() { return(-1); }

};

 

class Rectangle: public Figure

{

...

public:

float Area() { return(width*height); }

}

 

class Circle: public Figure

{

...

public:

float Area() { return(M_PI*radius*radius); }

}

Создать в программе (в теле обработчика) объекты спроектированных классов. Вызвать переопределенный метод для созданных объектов. Вызвать метод через указатель на базовый класс. Убедиться, что при раннем связывании вызывается метод базового класса.

Изменить пример из предыдущего задания, применив позднее связывание. Вызвать метод производного класса через указатель на базовый класс. Убедиться, что при позднем связывании вызывается метод производного класса.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.