30-03-2020-Gerbert_Shildt_-_Samouchitel_C__3-e_izdanie_2003 (Герберт Шилдт - Самоучитель C++), страница 4
Описание файла
Файл "30-03-2020-Gerbert_Shildt_-_Samouchitel_C__3-e_izdanie_2003" внутри архива находится в папке "язык СИ учебная литература". DJVU-файл из архива "Герберт Шилдт - Самоучитель C++", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр DJVU-файла онлайн
Распознанный текст из DJVU-файла, 4 - страница
1В С++ этот файл имеет то же самое назначение, что и файл в1(11о.Ь в С.) Ниже представлена вторая версия программы, в которой используется современный стиль: Самоучитель Се-ь !б Программа на Сье в современном стиле. Здесь используются новое о$ормление заголовков и ключевое слово паюезрасе */ Ьзпс1пое <гозсгеаю> паапа пап1езрасе зсц; тпг паз.п() ( програьзянья код */ геспгп 0; Обратите внимание на две строки в самом начале программы, в которых имеют место изменения. Во-первых, в инструкции №)пс!пйе после слова )оз!геащ отсутствуют символы .в.
Во-вторых, в следующей строке задается так называемое пространство имел (паптезрасе). Хотя подробно зти нововведения будут рассмотрены позднее, сейчас дадим их краткий обзор. Новые заголовки в программах на С++ Как вам должно быть известно из опыта программирования на С, при использовании библиотечной функции в программу необходимо включить заголовочный файл. Это делается с помощью инструкции №!пс!пве. Например, при написании программ на языке С заголовочным файлом для функций ввода/вывода является файл в!й)в.'и, который включается в программу с помощью следующей инструкции: Мапс1пое <згоъо.п> Здесь зн))о.)з — это имя файла, который используется функциями ввода/вывода, и предыдущая инструкция заставляет компилятор включить указанный файл в вашу программу.
В первые несколько лет после появления С++ в нем использовался тот же стиль оформления заголовков, что и в С. Для совместимости с прежними программами в языке Б[апг)ап! С++ этот стиль по-прежнему поддерживается. Тем не менее при работе с библиотекой В!апдагд С++ в соответствии с новым стилем вместо имен заголовочных файлов указываются стандартные идентификаторы, по которым компилятор находит требуемые файльь Новые заголовки С++ являются абстракциями, гарантирующими объявление соответствующих прототипов и определений библиотеки языка Вгапдагь! С++. Поскольку новые заголовки не являются именами файлов, для них не нужно указывать расширение .и, а только имя заголовка в угловых скобках.
Ниже представлены несколько заголовков, поддерживаемых в языке З!апдагг! С++: 17 Глава 1. Краткий обзор Сч-ч- <ьовькеаш> <квькеве> <еессок> <вькъод> Такие заголовки по-прежнему включаются в программу с помощью инструкции тт1пс!иае. Единственным отличием является то, что новые заголовки совершенно не обязательно являются именами файлов. Поскольку С++ содержит всю библиотеку функций С, по-прежнему поддерживается стандартный стиль оформления заголовочных файлов библиотеки С. Таким образом, такие заголовочные файлы, как з1а1о.а и сгуре.Ь все еще доступны.
Однако Яапдагд С++ также определяет заголовки нового стиля, которые можно указывать вместо этих заголовочных файлов. В соответствии с версией С++ к стандартным заголовкам С просто добавляется префикс с и удаляется расширение .Ь. Например, заголовок тагв.а заменяется новым заголовком С++ <свта111>, а заголовок в1гшй.Ь вЂ” заголовком <сагг1пя>. Хотя в настоящее время при работе с функциями библиотеки С допускается включать в программы заголовочные файлы в соответствии со стилем С, такой подход не одобряется стандартом языка Вгапбагб С++. (То есть, он не рекомендуется.) По этой причине во всех имеющихся в книге инструкциях Ф1пс!иае используется новый стиль написания заголовков программ.
Если ваш компилятор для функций библиотеки С не поддерживает заголовки нового стиля, просто замените их заголовками в стиле С. Поскольку заголовки нового стиля появились в С++ совсем недавно, во многих и многих прежних программах вы их не найдете. В этих программах в соответствии со стилем С в заголовках указаны имена файлов. Ниже представлен традиционный способ включения в программу заголовка для функций ввода/вывода: Мгп<Гис1е <ьовтсеат.ь> Эта инструкция заставляет компилятор включить в программу заголовочный файл 1ев1геат.Ь. Как правило, в заголовках прежнего стиля вместе с расширением .Ь используется то же имя, что и в соответствующих им новых заголовках. Как уже отмечалось, все компиляторы С++ поддерживают заголовки старого стиля.
Тем не менее такие заголовки объявлены устаревшими и не рекомендуются. Именно поэтому в книге вы их больше не встретите. Несмотря на повсеместное распространение в программах заголовков старого стиля, они считаются устаревшими. Самоучитель С++ 78 Пространства имен Когда вы включаете в программу заголовок нового стиля, содержание этого заголовка оказывается в пространстве имен вЫ.
Просарпнстоо имен (паптезрасе) — это просто некая объявляемая область, необходимая для того, чтобы избежать конфликтов имен идентификаторов. Традиционно имена библиотечных функций и других подобных идентификаторов располагались в глобальном пространстве имен (как, например, в С). Однако содержание заголовков нового стиля помещается в пространстве имен зГв. Позднее мы рассмотрим пространства имен более подробно.
Сейчас же, чтобы пространство имен в1в стало видимым, просто используйте следующую инструкцию: пзьпд патезрасе асст Эта инструкция помещает зГв в глобальное пространство имен. После того как компилятор обработает эту инструкцию, вы сможете работать с заголовками как старого, так и нового стиля. Если вы работаете со старым компилятором Как уже упоминалось, заголовки нового стиля и пространства имен появились в С++ совсем недавно, поэтому эти черты языка могут не поддерживаться старыми компиляторами.
Если у вас один из таких компиляторов, то при попытке компиляции первых двух строк кода, приводимых в книге примеров программ, вы получите одно или несколько сообщений об ошибках. Обойти эту проблему просто — удалите инструкцию папзеврасе и используйте заголовки старого стиля. То есть замените, например, инструкции $1пс1ссе <1састеатт> са1пс паатеарасе атпт на инструкцию М1пс1псе <1оаптеаат.ь> Это простое действие превратит современную программу в такую же, но в традиционном стиле.
Поскольку заголовок старого стиля считывает все свое содержание в глобальное пространство имен, необходимость в инструкции папзеврасе отпадает. И еще одно замечание. Еще в течение нескольких лет вы будете встречать программы, в которых заголовки будут оформлены в старом стиле и не будет инструкций ватпеарасе.
Ваш компилятор С++ будет прекрасно справляться с такими программами. Тем не менее, что касается новых программ, вам следует использовать современный стиль, поскольку именно он определен стандартом языка Яапдагд С++. Хотя программы прежнего стиля будут поддерживаться еще многие годы, технически они некорректны. 79 Глава 7.
Краткий обзор С++ 1. Перед тем как продолжить, попытайтесь откомпилировать представленный выше пример простейшей программы. Хотя эта программа не выполняет никаких действий, попытка ее компиляции поможет определить, поддерживает ли ваш компилятор современный синтаксис С++. Если он не принимает заголовки нового стиля и инструкцию вав7езрасе, замените их, как только что было описано. Запомните, если ваш компилятор не принимает код 7ювого стиля, вам придется сделать изменения в каждой программе этой книги.
1.3. Консольный ввод и вывод в С++ Поскольку С++ — это улучшенный С, все элементы языка С содержатся также и в С++. Это подразумевает, что все программы, написанные на С, по умолчанию являются также и программами на С++. (На самом деле имеется несколько очень незначительных исключений из этого правила, которые будут рассмотрены позже.) Поэтому можно писать программы на С+-ь, которые будут выглядеть точно так же, как и программы на С.
Ошибки не будет, это только будет означать, что вы не смогли использовать все преимущества С++. Чтобы по достоинству оценить С++, необходимо писать программы в стиле С++. Вероятно, наиболее своеобразной чертой языка С++, используемой программистами, является подход к вводу и выводу. Хотя такие функции, как рг)п170 и зсав7О, по-прежнему доступны, С++ обеспечивает иной, лучший способ выполнения этих операций. В С++ ввод/вывод выполняется с использованием операторов, а не функций ввода/вывода.
Оператор вывода— это «, а оператор ввода — ». Как вы знаете, в С эти операторы являются, соответственно, операторами левого и правого сдвига. В С++ они сохраняют свое первоначальное значение (левый и правый сдвиг), выполняя при этом еще ввод и вывод. Рассмотрим следующую инструкцию С++: сват « "эта строка выводится на экран.~в"7 Эта инструкция осуществляет вывод строки в заранее определенный поток сов(, который автоматически связывается с терминалом, когда программа С++ начинает выполняться. Это напоминает действие функции зЫвцг в языке С.
Как и в С, терминал для ввода/вывода в С+-ь может быть переопределен, но пока будем считать, что используется экран. С помощью оператора вывода «можно вывести данные любого базового типа С++. Например, следующая инструкция осуществляет вывод величины 100.99: ссвС « 100.997 Глава В Краткий обзор С++ = 10 5 = 20; с1 = 99.101; спит « "Вот несколько чисел: соис « 1; соис « соис « 3' соис « сочи « б; теситп 0; Ниже представлен результат работы программы: Вот несколько чисел: 10 20 99.101 Если вы работаете с устаревшим компилятором, ему могут оказаться недоступными заголовки нового стиля и инструкции патеврасе, используемые в этой и во всех остальных программах книги. Если это так, замените соответствующие инструкции описанным в предыдущем разделе способом. 2. В одном выражении ввода/вывода можно выводить более одной величины.
Например, версия программы, описанной в примере 1, показывает один из эффективных способов программирования инструкций ввода/вывода. Мьпс1ибе <1озс сеасп> изгоя паасезрасе эиб; тпс псагп() 1 тпс 1, ссоиЬ1е сС; 1 = 10; 9=20; с1 = 99.101; спит « "Вот несколько чисел: соис « 1 « ' ' « 9 « ' ' « с1с тетитп 0; Самоучитель С-н- Здесь в строке соцс « 1 « ' ' « б « ' ' « г(; выводится несколько элементов данных в одном выражении. В общем случае вы можете использовать единственную инструкцию для вывода любого требуемого количества элементов данных. Если это кажется неудобным, просто запомните, что оператор вывода «ведет себя так же, как и любой другой оператор С-'г+, и может быть частью произвольно длинного выражения.