Лабораторная работа №12
“Использование конструкторов и деструктора при проектировании пользовательского класса”.
Цель: получить практические навыки анализа проблемной области, выделения абстракций (классификации) и реализации классов.
Краткие теоретические сведения
Понятия класса и объекта.
Объяснение особенностей объектно-ориентированного метода (ООМ) обычно начинают с определения объекта. И это не случайно, так как представление любой предметной области в виде множества взаимосвязанных, взаимодействующих объектов и является ключом к пониманию ООМ.
Объект – это сущность, выделяемая из словаря предметной области, которая характеризуется набором свойств и событийным поведением. Последнее обычно представляется в виде множества событий, из которых образуется жизненный цикл объекта. В более распространенной терминалогии для именования этих двух аспектов описания объекта используют термины атрибут и метод.
Класс - фундаментальное понятие объектно-ориентированного метода. Это абстракция, обозначающее некоторое подмножество объектов, имеющих сходные черты как в наборе свойств, так и в поведении. Из опыта осуществления классификации в различных областях знания мы можем заметить, что абстракции бывают различного уровня и образуют древовидную структуру по отношению включенности одних абстракций в другие. На C++ создание (описание) класса выполняется с помощью следующей конструкции:
тип_класса имя_класса{список_членов_класса};
где тип_класса – одно из служебных слов class, struct, union;
имя_класса – идентификатор;
список_членов_класса – определения атрибутов и методов класса.
Пример.
class Window {
double scale; //масштаб изображения
int x; //координаты левого верхнего угла
int y; //
int Width, Height; //ширина и высота
AnsiString Caption; //строка заголовка
public:
Window(void); //конструктор
~Window(); //деструктор
void Hide(); //скрыть
void Show(); //показать
void Paint(); //прорисовать
};
Конструкторы и деструкторы.
Все, что мы определили применительно к классу справедливо для каждого объекта этого класса (экземпляра). Вот почему, с практической точки зрения, удобно рассматривать класс, как механизм порождения объектов. Во множество событий, управляющих поведением объекта, включают специальные события – создание и уничтожение объекта. Их принято называть конструктором и деструктором. В языке C++ и в UML конструктор – это событие одноименное классу, а деструктор именуется по имени класса с добавлением символа ‘~’ вначале имени.