Главная » Просмотр файлов » Г. Шилдт - Полный справочник по C++

Г. Шилдт - Полный справочник по C++ (1109478), страница 47

Файл №1109478 Г. Шилдт - Полный справочник по C++ (Г. Шилдт - Полный справочник по C++) 47 страницаГ. Шилдт - Полный справочник по C++ (1109478) страница 472019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Некоторые из них считают, что объявления, разбросанные по всему тексту, затрудняют анализ программ. По этой причине программисты нс придают этои возможности большого значения. В нашей книге мы не принимаем чью-либо сторону. И все жс в особых случаях, в частности в больших функциях, объявление переменных непосредственно перед их использованием облегчает отладку программ. Правило 'ЧП$ по умолчанию" Несколько лет назад в языке С++ появилось новшество, которое может повлиять на совместимость новых программ и кода, написаююго на старых версиях С++ и на языке С. В спшдарте С89 и в исходном варианте языка С++ отсутствие явного типа в объявлении переменной по умолчанию трактовалось как ьпв.

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

Стремясь соответствовать стандарту, разработчики компиляторов учли их в своих про()заымах. Разумсстся, мсжду появлснисм ~юлой возможности языка и сс рсализациси в коммсрчсских компиляторах вссгда прохолит опрсдслсннос врсмя. Поскольку новшества вносились в язык на протяжении нескольких лот„сгарыс всрсии компиляторов нс смогли их учесть. Это очень важно, поскольку два послсдних усоясршснсгвоваиия каса(отса буквально всех программ, включая самью простые.

Если ваш компилятор ((с полдсрживаст эти возможности, нс псчальтссь — эти прспятствия легко обойти. Принципиальная разница мсжду старым и новым стилями сволится к двум свойствам: (юный стиль заголовков и использованис оператора па»зеврасе. Чтобы понять эти различия, рассмотрим лвс простсйшис программы на языке С++. Псрвая из них соотвстсгвуст старому сзилю програмл(ирования /* Црограмма на С++ з старом стиле.

*/ З(ПС1ийЕ <ХОЗХХЕаы го> хпс гзайп О ( хехихп 0; ) Обратите особов анима((ис иа дирсктиву йхпс1ийе. Она вкл(очаст в текст программы заголовочиый файл йовххее»а.)х. а нс заголовок <1овахеае>. Кроме того, в этом вариаитс программы отсутствует опсратор патевраое.

Рассмотрим вторую сколот((ую программу, соотвстствуюшую новому стилю. / » Современный стиль программ>: нз языке С++, использупаий новый зил заголовков и пространство имен. */ Мхп<1ийе <хозххеам> из(од патезрасе вхй; 1пх ыайг.() ( хехихп О; ) В этом варианте программы использустся новый вид заголовков и пространстяо имен.

Оба эти свойства мы ужо упоминали. Рассмотрим их поближе. Новый стиль заголовков Как извсстно, для вызова стандартной библиотсчцой функции программа должна содсржать заголовочный файл. Для этого в программу включа>от дирсктиву йхпс1ийе. Например, в языке С, чтобы ввссти в программу заголовочный файл <вайхо.)х>, цсобходимо выполнить слсдуюший оператор. В Фхп<1ийе <зсй1о.)»> Здссь параметр вхй1о.)х прсдставдяст собой имя файла, в котором обьявлсны прототипы функций ввода-вывода, а директива прспроцсссора йапо1ийе вынуждаст компилятор включить этот файл в тскст исход((ой программы.

Итак, слсдуст помнить, что директива йапс1ийе вклл»чае/л файл в текст программы. Глава 11. Обзор языка С+э На п>ютяжении нескольких лет после своего появления язык С++ использовал тот жс стиль работы с заголовками, что и язык С. Иными словами, в нем применялись заголовочные фаилы.

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

Они просто представляют собой некие ста>шарп>ыс идентификатора>, которые могут соответствовать фаилам, а могут нс соответствовать им. Новые заголовки являются абстракцией„гарантирующей, что в программе будут объявлены соответствующие прототипы и определения, необходимые для вызова библиоте*шых функций. Поскольку за>оловки нового стиля нс являются именами файлов, у них нет расширения .зз. Они состоят лишь из имени заголовка, заключенного в угловые скобки. Рассмотрим, например, нскоторыс стандаршые заголовки нового стиля. <довсхеа>я> <хвьееа>в> <>геееох> <вскьпд> Новыс заголовки включаются в программу с помощью директивы >>впезц>зе, Еаинствсш>ая разница состоит в том, что заголовки нового стиля не обязательно являются именами файлов.

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

В программах на языке С++ к именам заголовочных файлов языка С лобавляется префикс "с", а расширение " з>" отбрасывается. Например, заголовочному файлу ыае».з> я старом стиле соответствует заголовок <ев>аез», а файлу вехьпд.» — заголовок <евеххпд>. Несмотря на то что использование заголовочных файлов старого образца допускается, в стандарте языка С++ этого делать не рекомендуется, В нашей кни~е мы придерживаемся >ювого стиля заголовков.

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

Например, имя заголовочного файла, содержащего прототипы функций ввода-вывода, указывается так. >> взвози<>е <Зоасхевп>.»> Эта директива вынуждает компилятор включить в программу заголовочный файл хедвехеав>.з>. Как правило, имена заголовков старого и >ювого стиля совпадают, за исключением расширения ".з>".

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

Изначально имена библиотечных Часть й. Язык С++ функций просто размещались в глобальном пространстве имен (как в языке С). Однако после появления заголовков нового образца их содержимое стали размегдать в пространстве имен вед. Позднее мы рассмотрим этот вопрос более полробно, а пока эта проблема ис должна иас во/пювать, так как оператор $ ив1по паееврасе вела; погружает пространство имсп в область вилимости (т.с. пространство имен ве6 включается в глобальное пространство имси). Этот оператор уничтожает разницу между заголовками старого и ново~о стиля. И сщс одно: чтобы сохранить совместимость с языком С, принято следующее соглашение.

Если программа, написающя на языке С++, содержит заголовок старого стиля, его содержимое погружается в глобалыюе пространство имен. Зто позволяет компилятору языка С++ компилировать программы, написанные на языке С. Работа со старым компилятором Как мы уже говорили, пространства имен и заголовки нового стиля появились относительно пелавно.

Они были лобавлспы в процессе стандартизации языка С++, Несмотря на то что все |ювые компиляторы язгяка С++ поддерживают эти свойства, старые компиляторы могут их ие учитывать. В этом случае компилятор выдает на экран сообщения об ошибках, Эту проблему очень легко решить: пужаю лишь заменить заголовки имеиами заголовочных файлов старого стиля и удалить оператор павевраое. Иначе говоря, следупг заменить операторы В1пс1ибе <зовигеаьт> ивьгд патеврасе вег); оператором а $1пс1иде <ьовегеап.)з> Зто изменение превращает современную программу в старомодную. Поскольку солержимое всех заголовочных файлов погружаемся в глобальное пространство имен, оператор павевраое теперь не нужен. И последнее: в обозримом будущем на практике еше долго будут встречаться программы, написанные в старом стиле, использующие заголовочные файлы и нс применяющие оператор ивхпвь Все совремеипыс компиляторы справляются с ними без проблем.

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

Для того чтобы создать объект, в языке С++ сначала необходимо опрелелить его общий вид, используя ключевое слово о1авв. С синтаксической точки зрения класс похож ца структуру. Рассмотрим в качестве примера класс, определяющий тип под названием аеас)с. С его помощью можно создать реальный стек. ВбеГ1пе В1ВЕ 100 // В этом фрагменте объявляется класс веаок. о1авв веаск ( ьпс всей(Я12Е)." гз7 Глава 11.

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

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

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

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

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