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

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

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

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

1.5. Использование С++ С.~-+ используется сотнямп тьпяч программистов практически во всех прикладных областях. Язык поддерживается десятком независимых реализаций, сотнями библиотек, руководств, несколькими техничсскими журналами, многочисленными конференциями и бесчисленными консультантами. Широко доступно обучение на различном уровне.

Ранние приложения имели ярко выраженный системный оттенок. Например, несколько основных операционных систем и ключевые части многих других были написаны на Сз-ч [СапзрЬеП, 1987 [, [Кох[ег, 1988], [Наин[гоп, 1993], [Вегй, 1995], [Рагйпйвоп, 1995[. Я не шел на компромиссы, которые могли бы привести к снижению эффективности низкоуровневых средств С++. Эффективность позволяет нам использовать Сч ь для написания драйверов и других программ, предназначенных для непосредственного управления аппаратурои в реальном времени. В таком коде предсказуемость выполнения играет по меньшей мере такую же роль, как и скорость, Часто то же самое можно сказать и о размере программы.

Каждое свойство С+ в вводилось с учетом ограничений по времени выполнения и требуемой памяти [5ггопз1гп р, 1994, э 4.5]. 48 Глава 1, Обращение к читателю В болыпинстве приложений есть участки кода, критичные ко времени выполнения. Однако большая часть кода расположена не в них. Как правило, ключевыми аспектами являются удобство сопровождения, расширяемость и простота тестирования. Эти свойства С++ привели к его широкому использованиго в областях, где совершенно необходима надежность, а также там, где требования к программам значительно меняются со временем. В качестве примеров можно привести банковское дело, торговлю, страхование, телекоммуникапии и военные приложения.

В течение многих лет централизованное управление системой междугородних переговоров в СШЛ осуществлялось программой на С ь«, н каждый звонок по номеру, начинающемуся с 800 (то есть звонок, оплачиваемый вызываемой стороной), маршрутизировался программой, написанной на С++ 1Кашатп, 1993), Многие из этих приложений являются большими программами и живут очень долго. Соответственно, стабильность, совместимость и масштабируемость всегда оставались в центре внимания при развитии С++, Программы на С++, содержащие миллион строк, нс являются большой редкостью. Создание С++ (как и С) не имело целью поддержку численных расчетов.

Тем не менее, на С««решается множество численных, научных и инженерных задач. Главная причина этого в том, что традиционные численные задачи часто должны совмещаться с графикой и вычислениями, связанными со структурами данных, которые не укладываются в традиционный Богггап [Вцййе, 1992], (Вагсоп, 19941. Графика и пользовательские интерфейсы — области интенсивного использования С++. Любой, кто работал на Арр1е Мас1птозп или РС под управлением %ип1ои з, косвенно пользовался С++, потому что базовые пользовательские интерфейсы этих систем написаны на С++.

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

Более того, он способен сосуществовать с фрагментами кода и программами, написанными на других языках. С+в широко используется для обучения и исследований. Это удивляет мзюгих, кто (справедливо) утверждает, что С++ це является ни самым маленьким, ни самым понятным языком. Тем не менее, он; достаточно ясен для обучения основным концепциям; достаточно реалистичен, эффективен н гибок для критичных проектов; достаточно доступен для организаций и объединений с различными средами разработки и выполнения; достаточно содержателен, чтобы служить инструментом обучения более сложным концепциям и методам; достаточно «рыноченгь чтобы приобретенные знания оказались полезными вне академической среды. С+« — язык, вместе с которым вы можете расти. 1.6.

С и С++ 49 1.6. С и С++ В качестве базового языка для С»ь был выбран С, потому что он: [1] является многоцелевым, лаконичным и относительно низкоуровневым языком; [2] подходит для решения большинства системных задач; [3] исполняется везде и на всем; [4] стыкуется со средой программирования 1)Х1Х.

В С есть свои проблемы, но их имел бы и разработанный с нуля язык, а проблемы С нам известны. Важно и то, что, благодаря С, язык «С с классами» стал мощным (разве что несколько неуклюгким) инструментом уже в первые несколько месяцев с момен- та зарождения идеи добавить 8!пш!а-подобные классы в С. По мере того, как С++ набирал популярность и его возможности все более превос- ходили средства С, вновь и вновь поднимался вопрос о целесообразности сохранения совместимости.

Очевидно, что можно было бы избежать некоторых проблем, достав- . шихся по наследству от С (см., например, [Бегй(, 1981]). Совместимость была остав- лена, потому что: [1] существуют миллионы строк кода на С, которые могут выиграть от использования Сь+, если не потребуется их полного переписывания с С на С++; [2] на С написаны миллионы строк библиотечных функций и утилит; онн могут быть использованы программами на С++, благодаря синтаксическому сходству и совместимости по компоновке с С; [3] сотни тысяч программистов знают С; им требуется изучить только новые свойства С++, не переучивая основы; [4] С++ и С будут использоваться на одних и тех же системах одними и теми же людьми в течение многих лет, так что разница должна быть либо очень незначительной, либо очень большой, чтобы свести ошибки к минимуму и избежать путаницы.

Определение С++ было пересмотрено с тем, чтобы любая конструкция, допустимая и в С, и в С+«ч имела бы одинаковый смысл в обоих языках (с несколькими незначи- тельными исключениями, см, 9 Б,2), Сам язык С частично развивался под влиянием С++ [Воз!ег, 1984]. Стандарт АХ81 С [С, 1990] содержит синтаксис объявления функций, заимствованный из «С с классами». Заимствование происходит в обоих направлениях.

Например, тип указа- теля поЫ* придуман для АК 81 С, а реализован впервые в С++. Как и было обещано в первом издании втой книги, определение С++ было пересмотрено с цслью устране- ния непринципиальных несовместимостей. В настоящее время, С++ более совмес- тим с С, чем вначале. Идеал С++ — быть близким к АХБ1 С настолько, насколько это возможно, но не ближе [Коеп!8, 1989]. Стопроцентная совместимость никогда не яв- лялась целью. Иначе пришлось бы пожертвовать безопасностью с точки зрения ти- пов и гармоничным сочстъшием встроенных и определяемых пользователем типов.

Знание С не является обязательным для изучения С++. Программирование на С поощряет многие технические трюки, которые становятся ненужными благодаря С«+. Например, явное преобразование типов в С++ используется реже, чем в С Я 1.6.1). Однако хорошие программы на С имеют тенденцию походить на программы па Се». Например, любая программа из книги ТЬе С Ргойгаттгп8 (ап((иа8е (2пд Ейг!оп), Кегп!8Ьап апг] к!гсй!е (Яэын програлииироеания С, 2-е издание, Керпиган и Ритчи) [Кегп!8йап, 1988] является программой на Се+, При изучении С+ ь поможет опыт использования любого языка со статическим определением типов. 50 Глава 1. Обращение к читателю 1.6.1. Рекомендации для программистов на С Чем лучше вы знаете С, тем труднее вам будст избежать программирования на Съ+ в стиле С, теряя при этом потепцнальнгяс преимущества С«+, Просмотрите, пожалуйста, приложение Б, в котором описываются различия С и С++.

Вот некоторые вещи, с которыми Съ' справляется лучше, чем С: (1] Макросы почти никогда не требуются в С++. Пользуйтесь сопз1 Я 5.4) или епит (9 4.8) для определения констант, (пнпе Я 7.1.1) во избежание накладных расходов на вызов функций, Гетр(аГе (глава 13) для определения семейства функций или типов п патезрпсе Я 8.2) для предотвращения конфликтов имен. [2] Не обьявляйте переменную, пока она вам не потребуется, чтобы вы тут же могли инициализировать ее. Объявление можно поместить в любом месте, где допустима инструкция Я 6.3.1), в разделе иннцнализации7ог-инструкции Я 6.3.3) и в условиях Я 6.3.2.1), (3] Не используйте пза((ос(]. Оператор пеш Я 6.2.6) делает то же самос лучше. Вместо геаПог(] пользуйтесь весгог Я 3.8).

(4] Пытайтесь избегать ооЫ», арифметических операций над указателями, объединений и приведений типов, за исключением разве что глубоко спрятанных в реализацию функций илп классов. В большинстве случаев приведение типа означает ошибку на этапе проектирования. Если вам необходимо приведение, попробуйте воспользоваться одним из «новых преобразований типа» Я 6.2.7), которое позволит выразить более точно то, что вы пытаетесь сделать.

(5] Сведите к минимуму использование массивов символов и строк С. Стандартные библиотеки классов С++ з1ппп Я 3.5) и тес(ог Я 3.7.1) часто могут упростить программирование по сравнению с традиционным стилем С. В общем, не пытантесь создавать то, что уже сделано в стандартной библиотеке. Для обеспечения соглашений С о компоновке функция С++ должна быть объявлена соответствующим образом Я 9.2А).

Самое важное: пытайтесь представить программу в виде набора взаимодействуюьчих понятий, реализованных в виде классов н объектов, а не в виде набора структур данных с функциями, перемалывающими их биты. 1.6.2. Рекомендации для программистов на С++ Многие люди пользовались С++ в течение длительного времени. Большинство из ннх используют С++ в одной среде и привыкли к ограничениям, полагавшимися ранними компиляторами и библиотекамп первого поколения. Тем, чего не замечал опытный программист на С++ в течение этих лет, было не появление новых средств как таковых, а скорее изменения в отношениях между средствами языка, которые сделали возможными новыс методы программирования.

Другими словами, то, о чем вы не думали, когда изучали С+чч или то, что вы сочли непрактичным, сегодня может оказаться исключительно полезным. Вы сможете познакомиться с этим только путем повторного просмотра основ. Читайте главы по порядку. Если вы знакомы с содержанием главы, вам удастся пролистать ее за несколько минут, Если вы не знакомы с материалом, вам встретится что-ннбудь неожиданное. Я кое-что узнал, пока писал эту книгу и подозреваю, что вряд ли существует программист на С+«э который знает все представленные здесь 51 1.7. Размышления о программировании на С++ свойства и технологии. Более того, чтобы правильно польаоваться языком, вам необходима некая перспектива, которая привнесла бы порядок в набор средств н методов.

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

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

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

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