Главная » Все файлы » Просмотр файлов из архивов » Файлы формата DJVU » Д. Вандевурд, Н.М. Джосаттис - Шаблоны C++. Справочник разработчика (2003)

Д. Вандевурд, Н.М. Джосаттис - Шаблоны C++. Справочник разработчика (2003), страница 5

DJVU-файл Д. Вандевурд, Н.М. Джосаттис - Шаблоны C++. Справочник разработчика (2003), страница 5 Языки программирования (3274): Книга - 7 семестрД. Вандевурд, Н.М. Джосаттис - Шаблоны C++. Справочник разработчика (2003): Языки программирования - DJVU, страница 5 (3274) - СтудИзба2019-09-19СтудИзба

Описание файла

DJVU-файл из архива "Д. Вандевурд, Н.М. Джосаттис - Шаблоны C++. Справочник разработчика (2003)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 5 - страница

Ь>). Исключение составляет <зсййеб. Ь>. Мы применяем его вместо <сзгййеб> и, следовательно, не определяем айте с и рсгйййй с с помощью префикса зсй::, поскольку таким образом обеспечивается большая переносимость, а применение всй:: зйзе г вместо зйзе с не дает никаких преимушеств. 1 Заметим, что в С++ синоним типа определяет псевдоним, а не новый тип, например: еурейея япе оепдсд| //ьепдед определяется как псевдоним япе 1пс 1 = 42; Ьепдеп 1 = 88; 1 = 1; // Корректно 1 = яз // Корректно 26 Глава 1.

Об этой книге 1.5. Стандарт и практика Несмотря на то что стандарт С++ доступен с конца 1998 года, вплоть до 2002 года не существовало широкодоступного компилятора, о котором можно было бы сказать, что он "обеспечивает полное соответствие стандарту". Таким образом, сегодня поддержка языка в компиляторах реализована по разному.

Есть среди них такие, которые способны компилировать большую часть кода, приведенного в этой книге, однако многие достаточно популярные компиляторы с большинством наших примеров могут и не справиться. Для таких нестандартных реализаций С++, как правило, приводятся альтернативные приемы, которые должны обеспечить полное или частичное решение проблем, но некоторые из описанных в книге методик для таких компиляторов сегодня недоступны.

Тем не менее авторы надеются, что эта проблема будет решена в широком масштабе, поскольку программисты требуют от производителей компиляторов строгого соответствия стандарту. Однако даже с учетом упомянутых трудностей язык программирования С++ находится в постоянном развитии.

Эксперты из сообщества С++ (независимо от того, входят они или нет в состав Комитета по стандартизации С++) уже обсуждают различные пути улучшения языка; при этом некоторые из потенциальных усовершенствований затрагивают шаблоны. Некоторые тенденции в этой области рассмотрены в главе 13, "Направления дальнейшего развития". 1.6. Примеры кода и дополнительная информация Получить доступ к демонстрационным программам и найти дополнительную информацию об этой книге можно на ее %еЬ-узле по адресу: Ьсср: //мьля. зовиссьн. сот/ стр1Ьоо)с/. Кроме того, большое количество дополнительной информации по рассматриваемой теме вы сможете получить на ЖеЬ-узле Дэвида Вандевурда (Ьс ар: / /ьлям.

чапдечоопйе . сом/ Тежр1асев) и в %еЬ в целом. Начать советуем с просмотра списка литературы к данной книге. 1.7. Обратная связь с авторами Мы приветствуем любые конструктивные отклики читателей — как отрицательные, так и положительные.

Нам обоим пришлось основательно потрудиться, чтобы создать для вас эту книгу, которую, надеемся, вы оцените как отличную. Однако в определенный момент мы просто вынуждены были прервать работу над ней, поскольку подошел срок "выпуска продукта". Следовательно, ни один нз наших читателей не застрахован от того, что прн изучении материала ему придется столкнуться с ошибками или несогласованностью, а также с отдельными моментами, которые 1.7. Обратная связь с авторами 27 нуждаются в доработке или с тем, что отдельные темы в книге не освещены вообще.

Ваши отклики дают нам возможность проинформировать всех читателей через %1еЬ- узел данной книги о найденных вами "узких местах" и улучшить таким образом ее последующие издания. Связываться с нами лучше всего по электронной почте (сшрХЬоо1сйЗониссзн. созе); однако, прежде чем посылать сообщение, удостоверьтесь, пожалуйста, что найденная вами неточность отсутствует в списке опечаток на нашем %еЬ-узле. Заранее благодарим вас за сотрудничество. Часть 1 Основы Эта часть книги знакомит читателя с общими концепциями и языковыми средствами шаблонов С++.

Она начинаегся с обсуждения основных задач и концепций на примерах шаблонов функций и шаблонов классов. В последующих главах рассматриваются некоторые дополнительные фундаментальные приемы работы с шаблонами, в частности параметры шаблонов, не являющиеся типами, ключевое слово сурепате и шаблоны- члены. В завершение приведены некоторые распространенные приемы применения шаблонов на практике. Данное введение в шаблоны частично использовано Николаи Джосатгисом (Ы(со!а1 М. 5оялбз) в его книге ОЬ|еспОпешел* Рго8гглляллд и1 С++, опубликованной издательством аппп %11еу апд Копя 1.Ы, 1БВИ 0-470-84399-3.

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

В общем случае (если язык программирования не поддерживает специальных средств лля решения подобных задач) у программиста имеются только следующие альтернативы: 1. Можно вновь и вновь реализовывать один и тот же алгоритм лля каждого типа данных. 2. Можно написать общий код для обобщенного базового типа, такого, как ОЬЗесг или чоха*. 3. Можно использовать специальные препроцессоры.

Часть 1. Основы ЗО Если говорить о конкретных языках (таких, как С, 1ача или подобных им), то читателю, возможно, уже приходилось проделывать подобные действия. Однако кюклый из описанных выше подходов имеет свои недостатки. 1. Каждый раз заново реализуя один и тот же алгоритм, мы, по сути, снова и снова изобретаем велосипед. Мы делаем одни и те же ошибки и, чтобы не наделать их еще больше, стараемся избегать более сложных, но зато и более эффективных алгоритмов. 2. Если мы пишем обобщенный код для общего базового класса, то теряем при этом преимущество проверки типов. Кроме того, в разных ситуациях может потребоваться порождение от различных базовых классов, что еще более затрудняет поддержку кода.

3. При использовании специального препроцессора, например препроцессора С/С++, теряется преимущество форматирования исходного кода. Код заменяется некоторым "тупым механизмом замены текста'*, который не имеет представления ни об области видимости, ни о типах. Шаблоны обеспечивают решение данной проблемы, лишенное недостатков, присущих рассмотренным способам. Шаблон представляет собой функцию или хаасс, реализованные для одного или нескольких типов данных, которые не известны в момент написания кода. При использовании шаблона в качестве аргументов ему явно или неявно передаются конкретные типы данных.

Поскольку шаблоны являются средствами языка„для них обеспечивается полная поддержка проверки типов и областей видимости. Шаблоны получили широкое применение в современном программировании. Например, практически весь код в стандартной библиотеке С++ состоит из шаблонов. Библиотека обеспечивает алгоритмы для сортировки объектов и значений определенного типа, структуры данных (так называемые классы контейнеров) для управления элементами конкретного типа, строки, для которых тип символа является параметризованным, и т.п. Однако это еще не все: шаблоны позволяют также параметризовать способы обработки данных, оптимизировать код и параметризовать информацию.

Как это делается, описано в последующих главах. А пока начнем с самых простых шаблонов. Глава 2 Шаблоны функций Данная глава знакомит читателя с шаблонами функций. Шаблоны функций — это параметризованные функции; таким образом, шаблон функции представляет целое семейство функций. 2.1. Первое знакомство с шаблонами функций Шаблон функции — это обобщенное описание поведения функций, которые могут вызываться для объектов разных типов; другими словами, шаблон функции представляет семейство функций.

Шаблон очень похож на обычную функцию, разница только в том, что некоторые элементы этой функции не определены и являются параметризованными. Чтобы проиллюстрировать сказанное выше, рассмотрим небольшой пример. 2.1.1. Определение шаблона Ниже приведен шаблон функции, возвращающей большее из двух значений. // Ьаз1сз/пах.Ьрр Сетпр1асе <сурепке Т> йп11пе Т сопзгй щах(Т сопзсй а, Т сопзгй Ьт ( // Если а < Ь, возвращаем Ь, иначе а гесигп а < Ь 7 Ь : ат ) Определение шаблона задает семейство функций, возвращающих большее из двух значений; эти значения передаются функции как ее параметры а и Ь. Тип этих параметров оставлен не определенным и задается как лараиелтр шаблона т. Как можно видеть из приведенною примера, параметры шаблонов необходимо объявлять, используя следующий синтаксис: сетар1асе < разделенный запятыми список параметров > В нашем примере список параметров задан как сурепаще т.

Обратите внимание„ что в качестве скобок используются символы "меньше" и "больше". Ключевое слово Глава 2. Шаблоны функций 32 сурепаве задает так называемый параметр тииа. Это наиболее распространенный внд параметров шаблонов в программах на С++, хотя возможны и другие параметры, которые рассматриваются в книге несколько позже (см. главу4, *'Параметры шаблонов, не являющиеся типами").

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