|
Программирование >> Формирование пользовательского контейнера
Формирование пользовательского контейнера Язык С++ обладает множеством функциональных возможностей; среди них управление компьютером на низком, машинно-зависимом уровне, создание в высшей степени оптимизированного кода и взаимодействие напрямую с операционной системой. И все они распространяются вглубь и вширь. С помошью С++ вы можете управлять объектами: создавать, удалять и наследовать их; получить доступ к указателям и поддерживать низкоуровневый ввод/вывод. Можно включить в язык дополнительные средства, описывая новые классы и перегружая операции. Есть возможность создавать собственные библиотеки и код, оптимизированный вручную. Вы можете даже нарушать правила, если это необходимо. С++ не для людей робкого десятка. Он для программистов, которые нуждаются в самом мошном языке программирования и заслуживают его. Конечно, С++ нельзя назвать воплощением грубой мощи. Эта мощь пронизывает язык, сосредоточена в нужных местах и всегда целенаправленна. Тщательно продуманная структура, богатые библиотеки, выразительный синтаксис формируют программную среду, которая также гибка и подвижна. Хотя С++ известен как непревзойденный инструмент для создания высокопроизводительного системного кода, он подходит для решения самых разных задач программирования. К примеру, его поддержку строковых переменных нельзя сравнить ни с чем, средства для математической и числовой обработки делают его незаменимым при программировании научно-технических задач, а его способность формировать быстрый объектный код как нельзя лучше подходит для задач с интенсивной загрузкой процессора. Цель этой книги - продемонстрировать мощь, область применения и гибкость языка С++, используя его в приложениях различного профиля. Некоторые приложения демонстрируют возможности языка, как такового. Они называются примерами или образцами чистого кода , потому что показывают выразительность языка С++ и элегантность его структуры. К ним относятся сборщик мусора из главы 2 и интерпретатор С++ из г,твы 9. Другие приложения демонстрируют легкость, с которой можно использовать С++ для профаммирования задач общего назначения. Например, диспетчер за-фузки файлов с удаленного компьютера из главы 5 иллюстрирует способность С++ создавать высокопроизводительный сетевой код. В главе 6 С++ применяется для различных финансовых вычислений. А все вместе приведенные примеры показывают универсальность языка С++. Прежде чем переходить к рассмотрению приложений, следует выяснить, что же делает С++ замечательным языком профаммирования. Остаток этой главы посвятим обсуждению некоторых качеств, определяющих мощь языка С++. Сжатый, но богатый синтаксис Одним из фундаментальных, определяющих качеств языка С++ является краткость его синтаксиса. В С++ определены только 63 ключевых слова. Несмотря на кажущееся противоречие, мощь С++ основана на отказе от встраивания в язык большего числа возможностей, чем необходимо. Действительно, в богатый, но компактный синтаксис С++ включены управляющие операторы, операции, типы данных и объектно-ориентированные средства, необходимые в любом современном языке профаммирования, но не больше! Таким образом, синтаксис С++ ясен, непротиворечив и не перенасыщен лишними деталями. Такой аскетический подход имеет два важных преимущества. Во-первых, ключевые слова и синтаксис С++ подходят для любой вычислительной среды, в которой язык может быть использован. Это значит, что базовые свойства С++ универсальны и доступны для всех приложений, независимо от среды исполнения. Реализация тех функциональных возможностей, которые зависят от нее, например, многопоточности, передана операционной системе, которая наилучшим образом приспособлена для их эффективной поддержки. Язык С++ не пытается найти решение на все случаи жизни, что может привести к ухудшению производительности при выполнении. Во-вторых, четкий, логически непротиворечивый синтаксис позволяет описывать сложные конструкции с достаточной ясностью, что очень важно в современном мире, насыщенном профаммами, разросшимися до фомадных размеров. Очевидно, что плохой профаммист напишет убогий код на С++, но хороший специалист может создать изумительно ясный и выразительный код. Возможность четкого представления сложной логики - одна из причин того, что синтаксис С++ стал почти универсальным языком профаммирования. Мощные библиотеки Современная среда профаммирования, конечно, требует наличия многих характеристик помимо тех, что поддерживаются ключевыми словами и синтаксисом языка С++ . Язык предоставляет элегантный способ доступа к ним благодаря наличию стандартной библиотеки. В нем определена наилучшим образом спроектированная библиотека, без которой не обойтись в любом современном языке профаммирования. Библиотека функций языка С++, перенесенная из С, содержит разнообразный набор объектно не ориентированных функций, таких как: поддержка строк типа char *, символьная обработка и функции преобразования. Все они очень часто используются профаммистами. Библиотека классов в С++ обеспечивает объектно-ориентированную обработку ввода/вывода, строк, STL (Standard Template Library, Стандартная библиотека шаблонов) и т. д. Поскольку большее доверие вызывают библиотечные процедуры, а не ключевые слова, новые функциональные возможности можно добавить в язык С++ простым расширением его стандартной библиотеки без введения новых ключевых слов. Такой подход позволяет С++ легко адаптироваться в меняюшейся профаммной среде, не требуя изменений базового языка. Таким образом, С++ сочетает две, казалось бы, несовместимые характеристики: стабильность и гибкость. Даже в своих библиотеках функций и классов С++ следует правилу: меньше значит, больше , чтобУ избежать ловушки, в которую попадают, пытаясь подобрать один размер, подходяший для всех . Библиотеки предлагают только те профаммные средства, которые могут быть реализованы в большинстве систем профаммирования. Для выполнения функций, свойственных специфической профаммной среде, С++ предоставляет доступ к операционной системе. Благодаря этому профаммисту доступны все возможности исполняющей платформы. Подобный подход позволяет вам писать высокоэффективный код, наилучшим образом используюший характеристики и функциональные возможности среды исполнения. Стандартная библиотека шаблонов Есть одна составная часть стандартной библиотеки классов, которая настолько важна, что заслуживает особого внимания, - это Standard Template Library (STL, Стандартная библиотека шаблонов). Создание STL стало кардинальным событием, которое изменило взгляд профаммистов на использование библиотеки языка профаммирования. Ее воздействие было столь, глубоко, что сказалось на разработке появившихся позже языков. Например, средства для обработки фупп объектов (Collections Framework) в языках Java и С# скопированы непосредственно из STL. Основа STL - это сложный набор шаблонных классов (или классов-шаблонов) и функций, реализующих многие популярные и общеупотребительные структуры данных, на которые STL ссылается как на контейнеры. Например, библиотека включает контейнеры, которые поддерживают векторы, списки, очереди и стеки. Поскольку библиотека STL построена из
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |