Главная » Просмотр файлов » А. Александреску - Современное проектирование на C++

А. Александреску - Современное проектирование на C++ (1119444), страница 4

Файл №1119444 А. Александреску - Современное проектирование на C++ (А. Александреску - Современное проектирование на C++) 4 страницаА. Александреску - Современное проектирование на C++ (1119444) страница 42019-05-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Шаблоны проходят красной нитью через всю книгу, поскольку они обеспечивают тесное взаимодействие пользователя и библиотеки. Пользователь библиотеки буквально контролирует способ генерации кода, причем этот способ ограничивается самой библиотекой. Предназначение библиотеки обобщенных компонентов — позволять пользователю создавать собственные типы и определять их поведение, а также правильно объединять их с другими обобщенными компонентами.

Поскольку при этом используются статические методы, ошибки, связанные со смешиванием и подгонкой соответствующих фрагментов„обычно обнаруживаются на этапе компиляции. Аудиторагзг Аудитория, которой предназначена эта книга, состоит из двух частей. К первой категории относятся опытные программисты на С++, желающие овладеть наиболее современными методами создания библиотек, В книге представлены новые мощные 18 Предисловие идиомы языка С++, обладающие удивительными возможностями, некоторые из которых невозможно было себе представить. Эти идиомы окажут неоценимую помощь при создании библиотек высокого уровня. Для программистов среднего уровня, желающих повысить свою квалификацию, книга также будет полезной, особенно если они проявят определенную настойчивость. Несмотря на то что иногда в книге встречаются довольно сложные фрагменты кода на С++, они всегда сопровождаются подробным комментарием.

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

Компоненты можно изучать независимо друг от друга. Они очень мошны и тем не менее безопасны, и, кроме того, их очень легко применять в своих приложениях. От читателя требуется хорошее знание языка С++ и желание знать его еше лучше. Следует также иметь представление о шаблонах вообгце и стандартной библиотеке шаблонов (8Т).) в частности. Знание основных шаблонов проектирования (Гамма и др., 1995) желательно, но не обязательно. Идиомы и шаблоны, применяемые в книге, детально описаны. Однако эта книга посвящена другой теме — в ней не делается попыток максимально обобшить шаблоны проектирования.

Поскольку они рассматриваются с точки зрения прагматичного создателя библиотеки, даже читатель, интересующийся в основном шаблонами проектирования, найдет для себя много нового, если захочет. Библиотека ьозгг' В книге описывается реальная библиотека ) оММ написанная на языке С++. Лаки (ЕоМ() — это бог остроумия в скандинавской мифологии, и автор надеется, что оригинальность и гибкость этой библиотеки соответствует названию.

Все элементы библиотеки находятся в пространстве имен ьоМ1. В примерах программ пространство имен не указывается, поскольку это увеличило бы размер кода и затемнило его содержание. Библиотеку ЕоМ) можно свободно загрузить с %еЬ-страницы Ьттр: //ахеи. аи1 . сов/сзеп9/ т(т1ез/0-201-70431-5. За исключением части, касающейся потоков, библиотека ) оМ) написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогуг работать с ней в полном объеме.

Я реализовал и протестировал библиотеку (.оМ( с помощью компиляторов Соде%апйог Рго 6.0 компании МеггозчегМз и Сотеац С++ 4.2.38 (оба компилятора работали под управлением системы %!лба). Похоже, что компилятор КА! С++ также не должен иметь с этой библиотекой никаких проблем. Как только поставщики распространят новые, усовершенствованные версии компиляторов, вы сможете эксплуатировать библиотеку ).оМ) полностью.

Код библиотеки ).оМ), а также примеры, приведенные в книге, используют популярный стандарт кодирования, предложенный Хербом Сеттером (НегЬ Бицег). Я уверен, что вы легко его поймете. Этот стандарт сводится к следующему. ° Классы, функции и перечислимые типы выглядят так: м(МетЫз. ° Переменные и перечислимые значения выглядят так: 1(МетЫз. ° Переменные-члены выглядят так: 1(МетЫз . 19 Предисловие ° Шаблонные параметры объявляются с ключевым словом с) азз, если онн представляют собой тип, определяемый пользователем (цзег-де1!пей гуре), и с ключевым словом гурепаме, если тип является простым !рптп!!!те). Структура книги Книга состоит из двух основных частей; способы программирования и компоненты. Часть) !главы 1 — 4) описывает способы программирования на языке С++, используемые в обобщенном программировании и, в частности, для создания обобщенных компонентов, Представлено множество особенностей и способов программирования на языке С++; проектирование, основанное на анализе поведения, частичная специализация шаблонов, списки типов, локальные классы и т.д.

Эту часть можно читать последовательно, а затем возвращаться к ней за конкретной информацией. Часть П организована так же, как и часть 1. В ней рассматривается реализация обобщенных компонентов. Здесь нет искусственных примеров. Все описанные компоненты используются в реальных приложениях. Проблемы, ежелневно встающие перед программистами на языке С++, например, интеллектуальные указатели, фабрики объектов и функторы, обсуждаются глубоко и решаются в общем виде. Реализации, приведенные в тексте, ориентируются на основные потребности программистов и предназначены лля решения фундаментальных задач.

Вместо подробного объяснения, что именно делает тот или иной фрагмент кода, в книге последовательно применяется следующий подход: сначала обсуждается задача, а затем выбирается и реализуется метод ее решения. Глава 1 посвящена классам стратегий — идиомам языка С++, позволяющим создавать гибкие шаблоны. В главе 2 обсужлаются основные способы программирования на языке С++, относящиеся к обобщенному программированию.

Списки типов, представляющие собой мощные структуры для манипуляции с типами, реализуются в главе 3. В главе 4 описывается важный вспомогательный инструмент — механизм распределения памяти для небольших объектов (зла!1-оЬ)есг а!!осагог). Обобщенные функторы, использующие шаблон проектирования совпало, обсуждаются в главе 5. В главе 6 описываются синглтоны. Глава 7 посвящена интеллектуальным указателям. В главе 8 описываются обобщенные фабрики объектов. Глава 9 посвящена шаблону проектирования дЬзтгаст яастогу и его реализации.

В главе 1О в общем виде реализовано несколько вариантов шаблона проектирования чз зз тог. Механизмы мультиметодов !пш!г)щегйоб епй!пез), представляющие собой решения, ориентированные на использование готовых компонентов, реализованы в главе 11. 20 Предисловие Прежде всего хочу поблагодарить моих родителей за их постоянную заботу. Следует подчеркнуть, что этой книги, как и большинства моих профессиональных успехов, не было бы без Скотта Мейерса.

С момента нашей встречи на Всемирном конгрессе по С+-ь (С++ Хтог!Ж Сопдгеьа) в 1998 году Скотт постоянно помогал мне. Он первым с энтузиазмом поддержал мои ранние идеи. Скотт познакомил меня с Джоном Влиссидесом, положив начало нашему сотрудничеству. Он посоветовал Хербу Саттеру сделать меня обозревателем журнала "С++ Верон" и привел в издательство Адйзоп-ХХгез!еу, практически вынудив начать эту книгу. В конце концов Скотт своими советами и замечаниями помогал мне все время в процессе работы над книгой, разлеляя со мной творческие муки. Выражаю глубокую признательность Джону Влнссидесу, который своими резкими замечаниями убелил меня, что мои решения не идеальны, и помог их улучшить.

Глава 9 — его заслуга. Она появилась в книге благодаря постоянным требованиям Джона не останавливаться на достигнутом и искать более удачные решения. Благодарю П. Дж. Плагера (Р. 3. Р1аедег) и Марка Брианда (Маг8 Вг!апд), вдохновивших меня писать статьи в журнал "С/С++ Узегз 9оигпаГ' в то время, когда я считал обозревателей этого журнала инопланетянами. Я очень признателен моему редактору Дебби Лафферти (ОеЬЬ!е !.а)Теку) за ее постоянную поддержку и полезные советы. Мои коллеги по компании Яеа!Ыепхог8з, особенно Борис Джеркуница (Вопз )ег!гцп!са) н Джим Кнаак (3!ш Кпаа)г), очень помогли мне, создав атмосферу свободомыслия, соперничества и стремления к вершинам мастерства. Я очень благодарен им за это. Выражаю свою признательность всем участникам форумов сотр.!апв.с++.пзодегагед и сснпр.Ы.с++ЛЬепег.

Эти люди помогли мне лучше понять язык С++. Я хотел бы выразить свою благодарность рецензентам моей рукописи: Михаилу Антонеску (М!Ьа)! Ап!овес!гц), Бобу Арчеру (ВоЬ Агсйег) (моему самому строгому рецензенту), Аллену Бролману (А1!еп Вгоайпап), Ионату Бурете (!опи! Вигеге), Мирель Чирита (М!ге! СЬ!пга), Стиву Кламагу (Бгехе С!агпаде), Джеймсу Коплину ()ашез Сор!!еп), Дугу Хазену (Ооцд Нахеп), Келвину Хенни (Ке!чп Неппеу), Джону Хикину (Лойп Н!сЫп), Говарлу Хиннанту (Ночагг) Н)паап!), Сорину Джиану (Бопп Яапц), Золтану Кормошу (Хо!гап Копцов), Джеймсу Кайперу (Загпез Киурег), Лизе Липпинкот (1 ьж Ебрр)псогг), Джонатану Лундквисту (Лопагйап )цпг)оц!зг), Петру Маргиняну (Регш Маг81пеап), Патрику МакКиллену (Рагпс)г МсК!11еп), Флорину Михайлу (Р)опп М!Ьа!)а), Сорину Опря (Бопп Оргеа), Джону Поттеру (Лойп Ропег), Адриану Рапитяну (Аг)пап Варйеапи), Монике Рапитяну (Моп!са Варйеапи), Брайану Стентону (Впап Бгепгоп), Адриану Стефле (Адпап 8!ейеа), Хербу Саттеру (НегЬ Бцггег), Джону Торйо ()о!зп Тот)о), Флорину Трофину (Р!опп Тюйп) и Кристи Власяну (Спзб 'х)азеапц).

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6532
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее