Главная » Просмотр файлов » С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс

С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс (1114944), страница 2

Файл №1114944 С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс (С.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс) 2 страницаС.Б. Липпман, Ж. Лажойе - Язык программирования С++ Вводный курс (1114944) страница 22019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

Какая-то другая функция в программедолжна обработать исключение, то есть как-то отреагировать на него. Материал обисключениях разбит на две части. В главе 11 описан основной синтаксис и приведен простойпример, иллюстрирующий возбуждение и обработку исключений типа класса. Посколькуреальные исключения в программах обычно являются объектами некоторой иерархииклассов, то мы вернемся к этому вопросу в главе 19, после того как узнаем, что такоеобъектно-ориентированное программирование.В главе 12 представлена обширная коллекция обобщенных алгоритмов стандартнойбиблиотеки и способы их применения к контейнерным типам из главы 6, а также к массивамвстроенных типов. Эта глава начинается разбором примера построения программы сиспользованием обобщенных алгоритмов.

Итераторы, введенные в главе 6, обсуждаютсяболее детально в главе 12, поскольку именно они являются связующим звеном междуобобщенными алгоритмами и контейнерными типами. Также мы вводим и иллюстрируем напримерах понятие объекта-функции. Объекты-функции позволяют задавать альтернативнуюсемантику операций, используемых в обобщенных алгоритмах, – скажем, операцийсравнения на равенство или по величине. Детальное описание самих алгоритмов и примерыих использования приводятся в приложении.С++ для начинающих6Главы 13-16 (часть IV) посвящены объектному программированию, то есть использованиюмеханизма классов для создания абстрактных типов данных.

С помощью типов данных,описывающих конкретную предметную область, язык С++ позволяет программистамсосредоточиться на решении основной задачи и тратить меньше усилий на второстепенные.Фундаментальные для приложения типы данных могут быть реализованы один раз ииспользованы многократно, что дает программисту возможность не думать о деталяхреализации главной задачи. Инкапсуляция данных значительно упрощает последующеесопровождение и модификацию программы.В главе 13 основное внимание мы уделим общим вопросам механизма классов: какопределить класс, что такое сокрытие информации (разделение открытого интерфейса искрытой реализации), как определять экземпляры класса и манипулировать ими. Мы такжекоснемся областей видимости класса, вложенных классов и классов как членов пространстваимен.В главе 14 детально исследуются средства, имеющиеся в С++ для инициализации иуничтожения объектов класса и для присваивания им значений.

Для этих целей служатспециальные функции-члены, называемые конструкторами, деструкторами икопирующими операторами присваивания. Мы рассмотрим вопрос о почленнойинициализации и копировании, а также специальную оптимизацию для этого случая,которая получила название именованное возвращаемое значение.В главе 15 мы рассмотрим перегрузку операторов применительно к классам. Сначала мыостановимся на общих понятиях и вопросах проектирования, а затем перейдем крассмотрению конкретных операторов, таких, как присваивание, доступ по индексу, вызовфункции, а также операторов new и delete, специфичных для классов.Будет представлено понятие дружественного класса, имеющего особые права доступа, иобъяснено, зачем нужны друзья.

Будут рассмотрены и определенные пользователямипреобразования типов, стоящие за ними концепции и примеры использования. Кроме того,приводятся правила разрешения функций при перегрузке, иллюстрируемые примерамипрограммного кода.Шаблоны классов – тема главы 16. Шаблон класса можно рассматривать как алгоритмсоздания экземпляра класса, в котором параметры шаблона подлежат замене на конкретныезначения типов или констант. Скажем, в шаблоне класса vector параметризован тип егоэлементов. В классе для представления некоторого буфера можно параметризовать не толькотип размещаемых элементов, но и размер самого буфера.

При разработке сложныхмеханизмов, например в области распределенной обработки данных, могут бытьпараметризованы практически все интерфейсы: межпроцессной коммуникации, адресации,синхронизации. В главе 16 мы расскажем, как определить шаблон класса, как создатьэкземпляр класса, подставляя в шаблон конкретные значения, как определить члены шаблонакласса (функции-члены, статические члены и вложенные типы) и как следуеторганизовывать программу, в которой используются шаблоны классов. Заканчивается этаглава содержательным примером шаблона класса.Объектно-ориентированному программированию (ООП) и его поддержке в С++ посвященыглавы 17-20 (часть IV). В главе 17 описываются средства поддержки базовых концепцийООП – наследования и позднего связывания. В ООП между классами, имеющими общиечерты поведения, устанавливаются отношения родитель/потомок (или тип/подтип).

Вместотого чтобы повторно реализовывать общие характеристики, класс-потомок можетунаследовать их от класса-родителя. В класс-потомок (подтип) следует добавить только теС++ для начинающих7детали, которые отличают его от родителя. Например, мы можем определить родительскийкласс Employee (работник) и двух его потомков: TemporaryEmpl (временный работник) иManager (начальник), которые наследуют все поведение Employee. В них самихреализованы только специфичные для подтипа особенности. Второй аспект ООП,полиморфизм, позволяет родительскому классу представлять любого из своих наследников.Скажем, класс Employee может адресовать не только объект своего типа, но и объект типаTemporaryEmpl или Manager.

Позднее связывание – это способность разрешения операцийво время выполнения, то есть выбора нужной операции в зависимости от реального типаобъекта. В С++ это реализуется с помощью механизма виртуальных функций.Итак, в главе 17 представлены базовые черты ООП. В ней мы продолжим начатую в главе 6работу над системой текстового поиска – спроектируем и реализуем иерархию классовзапросов Query.В главе 18 разбираются более сложные случаи наследования – множественное ивиртуальное. Шаблон класса из главы 16 получает дальнейшее развитие и становитсятрехуровневой иерархией с множественным и виртуальным наследованием.В главе 19 представлено понятие идентификации типа во время выполнения (RTTI – run timetype identification).

RTTI позволяет программе запросить у полиморфного объекта классаинформацию о его типе во время выполнения. Например, мы можем спросить у объектаEmployee, действительно ли он представляет собой объект типа Manager. Кроме того, вглаве 19 мы вернемся к исключениям и рассмотрим иерархию классов исключенийстандартной библиотеки, приводя примеры построения и использования своей собственнойиерархии классов исключений. В этой главе рассматривается также вопрос о разрешенииперегруженных функций в случае наследования классов.В главе 20 подробно рассматривается использование библиотеки ввода/вывода iostream.Здесь мы на примерах покажем основные возможности ввода и вывода, расскажем, какопределить свои операторы ввода и вывода для класса, как проверять состояние потока иизменять его, как форматировать данные.

Библиотека ввода/вывода представляет собойиерархию классов с множественным и виртуальным наследованием.Завершается книга приложением, где все обобщенные алгоритмы приведены в алфавитномпорядке, с примерами их использования.При написании книги зачастую приходится оставлять в стороне множество вопросов,которые представляются не менее важными, чем вошедшие в книгу.

Отдельные аспектыязыка – детальное описание того, как работают конструкторы, в каких случаях создаютсявременные объекты, общие вопросы эффективности – не вписывались во вводный курс.Однако эти аспекты имеют огромное значение при проектировании реальных приложений.Перед тем как взяться за “C++ для начинающих”, Стен написал книгу “Inside the C++ ObjectModel” [LIPPMAN96a], в которой освещаются именно эти вопросы. В тех местах “C++ дляначинающих”, где читателю может потребоваться более детальная информация, даютсяссылки на разделы указанной книги.Некоторые части стандартной библиотеки С++ были сознательно исключены израссмотрения, в частности поддержка национальных языков и численные методы.Стандартная библиотека С++ очень обширна, и все ее аспекты невозможно осветить в одномучебнике.

Материал по отсутствующим вопросам вы можете найти в книгах, приведенных всписке литературы ([MUSSER96] и [STRUOSTRUP97u]). Наверняка вскоре выйдет ещенемало книг, освещающих различные аспекты стандартной библиотеки С++.С++ для начинающих8Изменения в третьем изданииВсе изменения можно разбить на четыре основные категории:материал, посвященный нововведениям языка: обработке исключений, идентификации типаво время выполнения, пространству имен, встроенному типу bool, новому синтаксисуприведения типов;материал, посвященный стандартной библиотеке С++, в том числе типам complex, string,auto_ptr, pair, последовательным и ассоциативным контейнерам (в основном это list, vector,map и set) и обобщенным алгоритмам;коррективы в старом тексте, отражающие улучшения, расширения и изменения, которыеновый стандарт С++ привнес в существовавшие ранее средства языка.

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

Тип файла
PDF-файл
Размер
5,41 Mb
Тип материала
Высшее учебное заведение

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

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