Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTVETY_K_EKZAMENU_PO_OOP.doc
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
239.62 Кб
Скачать

5. Роль типов даных в яп

Паралельным явлением в совершенствовании техники прог-ния стало развитие концепции типа даных. Сталкиваясь в своей жизни с объектами различной природы, чел привык объединять в одну группу объекты со сходными признаками и применять к ним одни и те же способы обработки, наиболее им св-веные. Типы даных, порождаемые конст-рами типов, назются структурными типами даных. Их исп-ние позволяет упростить работу прог-иста при отображении структур обрабатываемых даных на структуры, предлагаемые ЯП. При работе со структурными даными конкретного типа даных прог-ист пользуется операциями, предоставляемыми этим типом даных. Тем не менее, ограниченое кол-во конст-ров типов не позволяет адекватно представить в проге любой необходимый тип даных с тем наборам операций, кот отражает семантику даного типа даных. Чтобы дать прог-исту возможность определять в проге нужные ему типы даных (в дополнение к стандартным и структурным типам даных), разработана концепция абстр-ых типов даных, обладающих интерфейсом и реализацией. Вся необходимая юзеру информация (имена операций, типы их парамов и типы рез-тов) сосредотачивалась в доступном ему интерфейсе, а детали реализации типа даных (представление его значений посредством значений известных типов даных и тела операций) были скрыты от него. Реализация типа даных в свою очередь, состоит из представления и тел операций. Интерфейс типа даных предоставляет юзеру информацию об именах и профилях операций. Имя операции — это либо идентификатор, либо — специальный символ (знак). Профиль операции указывает имена типов аргументов и типа рез-та операции. Если интерфейс типа даных фиксируется автором языка прог-ния, а реализация — разработчиком компилятора (интерпретатора), то такой тип даных назется встроеным, или стандартным. Если же и интерфейс и реализация создаются програмирующим на даном языке, то такой тип даных назется произвольным, или юзерским. Представление встроеного типа всегда выражается каким-то кол-вом байтов памяти. Т.к. представление юзерского типа в конечном итоге может быть выражено в байтах, имеет смысл операция определения размера типа даных. Как встроеные, так и юзерские типы даных разделяются, в свою очередь, на конкретные и родовые (парамизованые) типы. Конкретный тип характеризует определеное множво значений, он не требует дальнейшего уточнения и готов к непосредственому использованию. Родовой тип характеризует множво множв значений, он обладает парамами и требует конкретизации путем подстановки аргументов. Фактически, родовой тип — это функция высокого уровня (типовая функция), порождающая типы даных с родствеными интерфейсами. Др вариант родового типа даных — это макрос, кот в рез-те макроподстановки превращается в определение конкретного типа даных. По последнему варианту трактуются шаблоны в С++.

6. Этапы 00п.

Прога, решающая некот задачу, заключает в себе описание части мира, относящегося к этой задаче, или определеной предметной области. 0писание действительности в форме взаимодействующих объектов во многих случаях естественее, чем в форме иер-и подпрограм, и поэтому оно облегчает програмное моделирование такой предметной области.

В процесе прог-ния в 00ном стиле можно выделить следующие этапы:

1. 0пределение основных понятий предметной области и соответствующих им класов с соответствующими св-вами. 0боснование способов создания объектов. 2. 0пределение или формулирование принципов взаимодействия класов и взаимодействия объектов в рамках програмной сисмы. З. Установление иер-и взаимосвязи св-в родственых класов.

4. Реализация иер-и класов посредством механизма насл-я. 5. Реализация методов каждого класса. В рез-те такой работы создается 00-ная среда, или библиотека класов, позволяющая решать задачи моделирования в определеной предметной области. Первые три этапа явл 00ным анализом предметной области, а последние два — собствено 00П. В разработаных областях ясны классы, их иер-я и отношения взаимодействия. В неразработаных областях исп-ние 00П предусматривает гораздо большие затраты на первоначальных этапах разработки (00ный анализ, проектирование и создание библиотеки класов).

7. 0бщая характеристика языка С++.

С++ обеспечивает абстракцию даных, поддерживая понятия и возможности: - конст-р юзерских типов; -средства управления доступом (publiс, рrotected, private); -абстр-ые классы; -гарантированая инициализация и очистка объектов; -юзерские преобраз-ния типов объектов; -парамизованые (родовые) функции и типы даных; -обработка исключительных ситуаций. Ключевым понятием в С++ явл класс. Классы обеспечивают перечисленые выше возможности. Иер-ческая организация класов в С++ поддерживается понятиями: произ класс (подклас), вирт функция (подмена функций).