
- •Введение в ооп
- •Алгоритмическое и объектно-ориентированное программирование
- •3.Основные понятия объектно-ориентированного программирования
- •4. Объекты и их атрибуты
- •5. Структура визуальной среды
- •4. Страж кода (Code Guard).
- •7. Синтаксис и семантика классов
- •8. Доступ к элементам класса (объекта)
- •9. Встраиваемые функции-элементы
- •10. Создание экземпляров класса. Конструктор
- •Создание объекта в динамической памяти
- •11. Уничтожение объектов класса. Деструктор
- •12. Статические компоненты класса
- •13. Постоянные и модифицируемые элементы-данные
- •14. Передача адреса объекта компонентной функции. Указатель this
- •15. Конструктор копии
- •16. Перегрузка функций и операций
- •17. Операция присваивания для объектов
- •18. Функции преобразования типа объекта
- •19. Наследование. Общие положения
- •Влияние ключа доступа при наследовании
- •20. Простое наследование
- •21. Множественное наследование
- •22. Виртуальное наследование
- •23. Виртуальные функции
- •24. Динамический полиморфизм
- •25. Абстрактные классы
- •26. Дружественные функции и классы
- •27. Шаблоны
- •28. Стандартная библиотека шаблонов. Общие положения
- •29. Примеры контейнеров
- •30. Обработка исключительных ситуаций. Общие положения
- •Синтаксис и семантика генерации и обработки исключительных ситуаций
- •32. Использование объекта класса для возврата параметров исключений
- •33. Ограничение перечня возбуждаемых исключительных ситуаций
- •34. Повторное возбуждение исключительной ситуации. Вложенные блоки try
- •35. Организация проектировани и документирования разработки объектно-ориентированных программ
- •1. Отображение классов.
- •2. Отображение отношений между классами
4. Страж кода (Code Guard).
Предназначен для выявления логических ошибок.
Включение режима: Project Options CodeGuard. Включить соответствующие (все) флажки.
Настройка: Tools Code Guard Configuration. Как правило, настройки по умолчанию не меняют. Важно, чтобы был помечен флажок Enable.
Создание переносимого приложения.
Исполняемый файл приложения, созданный в обычном режиме, подгружает коды некоторых стандартных функций, расположенных в библиотеках среды проектирования, во время выполнения приложения. Чтобы приложение было независимым от среды, необходимо произвести компановку программы, предварительно изменив некоторые настройки компилятора и компановщика.
1. ProjectOptionsCompiler.
2. Включить режим Release (по умолчанию: Full debug).
3. ProjectOptionsLinker.
3. Сбросить флажок: Use dynamic RTL.
4. OK.
5. Выполнить команду: ProjectBuild Project1.
6. Запустить приложение в автономном режиме (на компьютере, где не установлен Builder)..
Рекомендуемая технология работы с проектом.
а) каждый проект (задание) создается в отдельной папке (FileSave project as…В диалоговом окне щелчком правой кнопки мыши открыть окно и создать новую папку в папке Projects Открыть папку Save Unit1.cpp Save Project1.bpr ). Если предложено сохранить только один файл Project.bpr, тогда в режиме Save as сохранить активный файл Unit.cpp.
б) для последующего сохранения файлов проекта использовать быструю кнопку на панели инструментов Save All.
в) после отладки и тестирования программы очистить контейнер среды:
File Close All.
г) запускать процедуру полной обработки RUN только тогда, когда все файлы проекта сохранены с учетом последних изменений, т.е. когда кнопка Save All не активна.
Клавиши редактирования
Shift + Delete – перенести выделенный блок из окна редактора в буфер обмена.
Shift + Insert – перенести информацию из буфера обмена в текст.
Shift + F6 – активизировать предыдущее активное окно.
Alt + F5 – показать окно программы.
Ctrl + F9 – компиляция и запуск из оболочки программирования.
Ctrl + Insert – копировать выделенный блок в буфер обмена.
Ctrl + F1 – получить контекстное меню.
Ctrl + K, B – пометить начало блока.
Ctrl + K, K – пометить конец блока.
Ctrl + K, P – напечатать блок.
Ctrl + K, C – копировать блок, начиная с позиции курсора.
Ctrl + K, V – переместить блок.
6. Структура проекта в C++ Builder
Любая программа в C++ Builder автоматически оформляется в виде проекта (Project). Проект состоит из нескольких файлов, которые создаются автоматически.
Все файлы проекта необходимо хранить в отдельной папке. Вначале работы над проектом целесообразно выполнить операцию Save Project as (или Save all), при этом будет предложено сохранить файлы Unit1.cpp и Project1.bpr. Исходное количество файлов в проекте – шесть. Если далее создаются дополнительные файлы проекта, то их необходимо добавить в проект (пункт меню Projects Add to project).
Основные файлы проекта:
Project1.res – файл ресурсов приложения. Содержит описание пиктограмм, графических изображений, курсоров мыши, строк, созданных программистом и отображаемых на форме.
Unit1.cpp –файл реализации проекта. Содержит исходный текст обработчиков событий приложения. Это основной файл, с которым работает программист.
Unit1.dfm – текстовый файл, содержащий описание формы и всех компонентных объектов, статически размещенных на ней. Этот файл поддерживается и обновляется средой С++Builder автоматически.
Имя формы, например Form1, является одновременно и именем класса для ее объектов. Объявление этого класса содержится в файле Unit1.h. Стандартный идентификатор класса формы имеет вид: TFormX, где X – число, задающее номер формы в последовательности всех форм проекта.
Существует две разновидности форм: модальная (modal) и немодальная (modeless).
Модальные диалоговые окна раскрываются методом ShowModal и позволяют просматривать и модифицировать параметры с помощью объектов формы. Чтобы перейти на другую форму, модальную форму необходимо закрыть.
Немодальные формы раскрываются методом Show() и остаются на экране, не препятствуя переключению на другие формы.
Формы могут находиться в памяти статически и динамически. Статические формы постоянно находятся в памяти, динамические создаются в процессе выполнения программы. Изменить соответствующий статус формы можно с помощью вкладки Forms диалогового окна Project options. Формы, показанные в списке Auto-create forms являются статическими. Их можно перевести в разряд динамических (Available forms) путем манипулирования соответствующими управляющими кнопками. Результат манипулирования можно посмотреть в файле реализации проекта (Project.cpp). автоматически исчезнут соответствующие инструкции Application Create Form( )/
Project1.cpp – управляющий модуль проекта. В этот файл автоматически включаются все формы, ресурсы, программные модули и модули данных проекта. Именно здесь инициируется, запускается и завершается исполняемый код приложения, создаются его главная и дочерни формы если таковые имеются.. Любая новая форма, программный модуль или модуль данных автоматически включаются в проектный файл. Этот файл категорически не рекомендуется редактировать вручную.
Project1.bpr – обеспечивает проведение компиляции и сборки приложения. Менеджер проектов автоматически отслеживает в этом файле все текущие проектные настройки, сделанные программистом по команде Project Options главного меню. Он содержит ссылки на все формы проекта и относящиеся к ним модули.
Unit1.h –интерфейсный модулю с объявлениями компонентных объектов формы и ее конструктора. Функции-обработчики объявлены с ключевым словом _fastcall. Это означает, что передача параметров идет не через стек, а через регистры центрального процессора, что значительно сокращает время обработки событий, а значит и время выполнения программы.
Файлы с расширением .tds хранят настройки проекта: какие окна открыты, их координаты. Сохраняет внешний вид приложения.
После компиляции исходного кода добавляется файл Project1.obj и после компоновки – Project1.exe.
При сохранении создаются резервные копии некоторых файлов с расширениями, например, ~ddp, ~cpp.
При сохранении проекта (Save Project as) в соответствующей папке последовательно сохраняются файлы Unit1.cpp, Project1.bpr и сопутствующие им одноименные файлы. При этом система выдает запрос на сохранение автоматически. Эта опция меню File должна быть активизирована только один раз. Повторная активизация создает в той же папке новый проект с именем Project2, что недопустимо.
Модули
Классы помещаются в модули – отдельно компилируемые файлы. Интерфейсная часть модулей также помещается в отдельный файл с расширением .h (файлы-заголовки). Реализация хранится в файлах .cpp. Связь между файлами объявляется директивой макропроцессора #include.
Модуль – физический контейнер классов и объектов.
Принципы объединения классов и объектов в модули:
простота восприятия;
независимость реализации;
легкость внесения прогнозируемых изменений;
интерфейсная часть модуля должна быть как можно уже и интерфейсные элементы не должны изменяться.