Главная » Просмотр файлов » Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004

Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791), страница 204

Файл №1160791 Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004) 204 страницаБ. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791) страница 2042019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Код на С« ~-, не являющийся кодом на С В данном разделе перечисляются возможности С++, не обеспечиваемые С. Эти осо- бенности рассортированы по назначению. Однако их можно классифицировать по- разному, н многие особенности имеют несколько назначений, так что к данной клас- сификации не следует относиться слишком серьезно. ° Особенности, предназначенные прежде всего для удобства записи: [1] комментарии с помощью//: в настоящее время добавляется к С; [2] поддержка ограниченного набора символов (9 В.3.1); [3] поддержка расширенного набора символов Я В.З.З); в настоящее время добавляется к С; [4] неконстантные инициализаторы для объектов со статическим хранением (9 9.4.1); [5] солИ в константных выражениях; [6] объявления как инструкции (9 6.3.1); [7] объявления в нннциалнзаторах/ог-цнг~лрухции н условных инструкциях (6 6.3.3, 6 6.3.2.1 ); [8] имена структур не обязательно предварять словом Игисг(9 5.7).

Особенности, предназначенные прежде всего для усиления системы типов: [1] проверка типа аргумента в функции (9 7.1); была добавлена в С (9 Б.2.2); [2] компоновка, безопасная с точки зрения типов (9 9.2, 9 9.2.3); [3] распределение свободной памяти при помощи пеши Не1е1е(9 6.2.6, 6 10.4.5, 9 15.6), [4] солИ (9 5А, 6 5А.1); было добавлено в С; [5] логический тип Ьоо1(9 4.2). [6] новый синтаксис приведения (9 6.2.7). Срслства, предназначенные для поддержки типов, определяемых пользователем: [1] классы (глава 10); [2] Функции-члены (9 10.2.1) и классы-члены Я 11.12); [3 [ конструкторы н деструкторы (9 10.2,3, 9 10А.1); [4] производные классы (главы 12 н 15); [5] виртуальные функции и абстрактные классы (9 12.2.6, 9 123); [6] контроль лоступа, открытый/защищенный,'закрытый (рий1с/рго1ес1еф рпва1е) (9 10.2.2, 9 15.3, 9 В.11); 898 Приложение Б.

Совместимость [7] друзья Я 11.5); [8] указатели на члены (9 15.5, 9 В.12); [9] статические члены (9 10.2А); [10] члены ти1иВ!е (9 10.7.2); [11] перегрузка операторов (глава 11); [12] ссылки (х 5.5). Особенности, предназначенные в первую очередь для организации программ (в добавление к классам): [1] шаблоны (глава 13, 9 В.13); [2] встроенные функции (9 7.1.1); [3] аргументы по умолчанию (9 7.5); [4] перегрузка функций (9 7.4); [5] пространства ил~ен (9 8.2); [б] явное разрешение области видимости (оператор::; 9 4.9.4); [7] обработка исключений (9 8.3, глава 14); [8] определение типа во время выполнения (ч 15.4).

Ключевымн словами, добавленными в С++ (9 Б.2.2) можно пользоваться для выявления спепифическпх средств С++. Однако некоторые средства, такие как перегрузка функций и солз1в константных выражениях, не идентифицируются по ключевым словам, Кроме перечисленных здесь языковых особенностей библиотека С+в (9 16.1.2) по большей части специфична д.ля С++. Для определения того, каким компилятором должна компилироваться программа — С или С++, — можно пользоваться макросом ср1изр1из(з 9.2А). Б.З. Старые реализации С++ С++ постоянно использовался, начиная с 1983 года (9 1.4). С тех пор было определено несколько версий, и появилось несколько независимо разработанных реализаций. Фундаментальная цель попыток стандартизации заключалась в том, чтобы разработчики реализаций и пользователи смогли работать с единым определением С+в.

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

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

Лучшее подмножество С++ для первоначального изучения — не набор возможностей низкого уровня (и не общее подмножество С и С++; 9 1.2). В частности, чтобы облегчить обучение и получить хорошее первое впечатление о программировании на С++, я рекомендую опираться на стандартную библиотеку и шаблоны. Первый коммерческий выпуск С+ь состоялся в конце 1985 года. Язык определялся первой редакцией данной книги. На том этапе С+в не предлагал множественного насле- 897 Б.З. Старые реализации С++ дования, шаблонов, информации о типе во время выполнения, исключений и пространств имен. Сегодня я не вижу смысла пользоваться реализацией, не ооеспечивающей хотя бы части этих возможностей.

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

Проектируйте так, как будто вам доступен весь язык, а затем ищите нужные средства. Это ведет к лучше организованным программам, которые легче сопровождать, по сравнению с проектированием, используюп!им подмножество С++, отвечающее «наименьшему общему знаменателю.. Также будьте осторожны в использовании расспирений, специфических для данной реализапии языка, и применяйте их только в случае крайней необходилюсти. Б.3.1. Заголовочные файлы Традиционно все заголовочные файлы имели расширение .Ь. Таким образом, реализапии С++ вводили заголовочные файлы, такие как <тар.й> и <1оз1геат.й>. Из соображений совместимости большинство реализаций по-прежнему так и делают. Когда комитету по ст з ндартам понадобились заголовочные файлы д ля новых версий стандартных библиотек и для добавляемых возможностей библиотеки, именование этих заголовочных файлов стало проблемой.

Использование старых имен г расширением .Ь породило бы трудности с совместимостью. И было решено для имен стандартных заголовочных файлов отказаться от суффикса .Ь. Он все равно избыточен, поскольку обозначение < > и так указывает, что речь идет об имени стандартного заголовочного файла. Таким образом, стандартная библиотека предоставляет заголовочные файлы без расширения, такие как <1оз1геат> и <тар>, Объявления в этих файлах располагаются в пространстве имен з1с(. Устаревшие заголовочные файлы располагают свои объявления в глобальном пространстве имен и используют расширение уь Рассмотрим пример: и!пс1ис(е<!вв!геат> и! та!и () е!д сви! «Здраествусг, мерка; ) Если в вашей реализации это не удается скомпилировать, попробуйте более традиционную версию: и!пс1иде<!веггеат Ь> т! !па!и (( ( сои! « 'Здравствуй, мирЬ,п"; Несколько самых серьезных проблем с переносимостью возникает из-за непереносимых заголовочных файлов.

Стандартные заголовочные файлы вносят в эту несовместимость лишь малую долю. Часто программы зависят от большого числа заголовочных 998 Приложение Б. Совместимость файлов, которые присутствуют не на всех системах, от болыпого числа объявлений, которые не на всех системах располагаются в тех жс заголовочных файлах, и от объявлений, которые считаются стандартными (поскольку находятся в заголовочных файлах со стандартными именами), но не являются частью какого-либо стандарта.

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

Аналогично, если какие-то возможности в разных системах предоставляются в несколько отличной форме, мы можем обращаться к этим средствам через специфичные для прикладной программы интерфейсные классы и функции. Б.3.2. Стандартная библиотека Естественно, реализации С++, предшествовавшие стандарту, могут не иметь некоторых частей стандартной библиотеки. В большинстве из них буду~ потоки ввода/вывода, нешаблонный класс сотр1ех, различные строковые классы и стандартная библиотека С. Однако могут отсутствовать ассощлативные массивы (тар), списки (11з1), оа1аггау и т.

д, В таких случаях пользуйтесь доступными библиотеками (как правило, являющимися собственностью той или иной фирмы), которые бы позволили впоследствии перейти к стандарту при обновлении вашей реализации, Обычно лучше пользоваться нестандартными строками, списками н ассоциативными массивами, чем при отсутствии этих классов в стандартной библиотеке возвращаться к программированию в стиле С. Также досгушзы для свободной загрузки хорошие реализации ЯТЕ-части стандартной библиотеки (главы 16, 17, 18 и 20).

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

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

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

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