суббота, 5 декабря 2009 г.

7.8.1. Пример: абстрактный тип данных массив

Мы обсуждали массивы в главе 4. Массив это не более чем указатель и некоторая область памяти. Если программист осторожен и нетребователен, для выполнения операций с массивами достаточно этих примитивных знаний. Существует много операций, которые хотелось 6bt выполнять с массивами, однако они не встроены в С++. С помощью классов С++ программист может создать АТД массив, который предпочтительнее «сырых» массивов. Класс массив (такой класс будет создан в главе 8) может обеспечивать ряд новых полезных возможностей, таких как
       проверка диапазона индексов;
       произвольный выбор диапазона индексов;
       присваивание массива;
       ввод и вывод массива;
       массивы, которые знают свой размер.
Недостаток здесь заключается в том, что мы создаем заказной, нестан­дартный тип данных, который не доступен точно в таком виде в большинстве реализаций С++. Впрочем, использование С++ и объектно-ориентированного программирования быстро возрастает. Решающим моментом является то, что работы по профессиональному программированию развиваются в направлении крупномасштабной стандартизации и распространения библиотек классов для более полной реализации потенциала объектной ориентации.
С++ имеет небольшой набор встроенных типов. Абстрактные типы дан­ных расширяют базу языка программирования.
Замечание по технике программирования 7.8
Программист имеет возможность создавать новые типы, используя формализм клас­сов. Эти новые типы можно применять так же, как и встроенные типы данных.
Поэтому С++ является расширяемым языком. Несмотря на возможность легко рас­ширять его с помощью новых типов, базовый язык сам по себе остается неизменным.
Новые АТД, созданные в средах С++, могут быть собственностью отдель­ных людей, небольших групп или компаний. АТД можно помещать в стан­дартные библиотеки классов с целью их широкого распространения. Это не способствует стандартизации, хотя фактически вопрос о стандартизации воз­никает. В полном объеме значение С++ будет реализовано лишь тогда, когда станут широко доступны важные и стандартизированные библиотеки классов. Необходимы формальные процедуры поддержки разработки стандартизиро­ванных библиотек. В Соединенных Штатах такая стандартизация часто осу­ществляется при участии ANSIАмериканского Национального Института Стандартов. ANSI непрерывно развивает стандартную версию С++. Незави­симо от того, каким образом в конце концов появляются эти библиотеки, читатель, который знает С++ и объектно-ориентированное программирова­ние, будет готов овладеть достоинствами быстрой компонентно-ориентиро­ванной разработки программного обеспечения благодаря возможностям биб­лиотек АТД.

Комментариев нет:

Отправить комментарий