Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы С++(1-31).doc
Скачиваний:
30
Добавлен:
24.09.2019
Размер:
113.15 Кб
Скачать
  1. Реализация стека с использованием связного списка

Во многих приложениях размеры стека могут динамически увеличиваться и уменьшаться. Поскольку для связанных списков выделяется динамическая память, класс стека должен иметь конструктор копирования и деструктор. Как всегда, программа состоит из заголовочного файла и файла реализации. Обратите внимание, что пред и постусловия функций-членов класса полностью совпадают с их аналогами при реализации стека в виде массива, поэтому они не указываются.

  1. Класс комплексных чисел

Класс комплексных чисел стандартной библиотеки С++ представляет собой хороший пример использования объектной модели. Благодаря перегруженным арифметическим операциям объекты этого класса используются так, как будто они принадлежат одному из встроенных типов данных. Более того, в подобных операциях могут одновременно принимать участие и переменные встроенного арифметического типа, и комплексные числа.

  1. События, обработка событий. Модель делегации событий.

Так уж исторически сложилось, что в языке С++ нет событий. Событием (event) является исходящий вызов (программисты на VB хорошо знакомы с ними) и в С++ их действительно нет. Иногда события путают с сообщениями (message), но это не верно. Сообщение это прямой вызов: например windows вызывает оконную процедуру для передачи сообщения окну. Объект (система) вызывает функцию объекта (окна). Вызов происходит от объекта к объекту. В отличии от сообщения событие имеет другую механику. Объект инициирует событие и вызываются все объекты-обработчики. Т.е. от одного объекта к нескольким. Причем объект инициатор события может ничего не «знать» об его обработчиках, поэтому событие называют исходящим вызовом.

Раз уж в С++ события на уровне языка не поддерживаются, значит стоит организовать их на уровне библиотеки.

Обработка событий

События генерируются оконной системой или Qt в ответ на различные действия. Когда пользователь нажимает или отпускает клавишу или кнопку мышки, гене рируется событие клавиши клавиатуры или кнопки мышки; когда окно впервые вы водится на экран, генерируется событие рисования, указывая появившемуся окну н необходимость его прорисовки.

Модель делегации событий - ХЗ