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

Бьерн Страуструп. Язык программирования С++. Специальное издание (2011) (1004033), страница 202

Файл №1004033 Бьерн Страуструп. Язык программирования С++. Специальное издание (2011) (Бьерн Страуструп. Язык программирования С++. Специальное издание (2011)) 202 страницаБьерн Страуструп. Язык программирования С++. Специальное издание (2011) (1004033) страница 2022018-10-07СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Классы ил(пк-((ес!ага Поп (етр(а(е ((ее!ага((оп тетЬет-((ее!ага(ог-1(л(( тетЬег-(1ес1ата(ог тетЬег-((ес!ага(от-1!л(, тетЬег-((ес!ага(ог тетЬет-аес!ага(от( ((ее!ага(ог риге-лресфег,р( с(ес!ага(ог сопл(ап(-!п(1!а!(лет,р, 1((еп(З(ег р, . сопз(ап(-ехртелл(оп рите-лресфег: — 0 сопл(ап(-(п!1(а1!гет( = сопл(ап(-ехртелл!оп Ради совместимости с языком С допускается в одной и той же области видимости объявлять класс и не-класс с одним и тем же именем 185.7). Например: раис( л(а( 17*... *7) ( (п( л(а((слог* пате, раис( ма(* Ьи!) В этом случае, имя з(а( — это не имя класса; на класс нужно ссылаться с помон(ью классового префикса.

Константные выражения определяются в 8С.5. А.8.1. Производные классы См. главу 12 и главу 15. Ьале-с1аиле( : Ьале-лресфет-1Ы( Ьазе-зресфег-1О(: Ьале-лресфег Ьале-лресф(ет-1(л(, Ьале-лресфег Ьале-лресфег: ::,, пел(е((-пате-лрес(фег р, с!азл-пате Рьгтеа1 асселл-зРесфет,р,,р, пел!е((-пате-лРес(фет,р, с!ат-пате асселл-лрес фег р т г т е а т,р,,р, пел(е((-пате-лресфет,р, с!ат-па т е ассет-лресфег: ргтеахе рсосесгес( рао|ьс А.8.2.

Особые функции-члены См. 811.4 (операции преобразования), 810.4.6 (инициализация членов класса) и 812.2.2 (инициализация базового класса). сопрегл!оп-)йпс((оп-!((; орегааог сопретл(оп-(уре-1(( Приложение А. Грамматика сопрегиоп-(уре-Ы( (уре-зрес)((ег-зе(! сопрегз[оп-((ес!ага(ог,р, сопрегз!опЫес1ага(ов Р(г-оРега(ог сопгегз!оп-((ее[ага(ог р, с(ог-!п(1!а1!гег( вет-!и!(!а!!гег-!!з( тетив!Иа![гег-1!з1: тет-!и!(!а1!гег тет-вряа1ггег, тет-(пЫа!ггег-![з( тет-ии(!а!!геи тев-ЫЖа1иег-Ы [ ехргезз!оп-((з(,р, ) тет-!и!(!а!!гег-!а( ::,р, пез(е((-пате-зрес()(ег,р, с1ат-пате ЫеппУ)ег А.В.З. Перегрузка См. главу 11. орега(ог-!ипсноп-Ы: орега1ог орега(ог орега(ог( опе оГ пее <)е1еге оее[1 / Ъ % яя оетеге[) й < > «»»= «= ->* -> () [) А.9.

Шаблоны Шаблоны объясняются в главе 13 н 5С,13. (етр!а(е-(!ее!ага([оп( ехрогс,р, сепртаге < 1етр(а(е-рагате!ег-!!и > ((ее!ага!!оп (етр!а(е-рогове(ег-1(зс (етр1а(е-рогове(ег !етр!а(е-рагате(ег-1!з(, (етр!а(е-рогове(ег (етр[а(е-ра готе(ег( 1уре-рогове(ег регате(ег-((ее[ага([оп (уре-рога те(ег( Сзааа !аЕП1фЕГ,р, с1аяя Ыеп(1~)ег,р, - (уре-Ы суреоаее Ыепп[(егрр, сурепапе !депп[!ег,р, = (уре-Ы сепртасе < (етр(а(е-рагате(ег-1(з( > сзаяя Ыеп(а)ег,р, гепрзаге < (евр!а(е-рагате(е(-1[з( > стаяя Ыеп!фег,, Ы-ехргезиоп А.) О.

Обработка исключений 9ЯЗ гетр!осе-и1: сетр1осе-пате < сетр(асе-агдитепс-!йс,р, > сетр1асе-патес Ыепсс)сег гетр!асе-агяитепс-!(зсс гетр!осе-агяитепс гетр(асе-агяитесс(-1(зс, гетр(асе-агаитепс сетр!асе-агяи тепсс аззсяптепс-ехргеззсоп суре-Ы Ы-ехргезгпоп ехр1(с(с-(песа асса!!оп' еес»рхаее бес!агасюп ехр1(ссс-зрес(а1(за(санс сепр«асе < > бес!аганоп Явная специализация аргументов шаблона открывает возможность запутанной синтаксической неоднозначности. Рассмотрим пример: »оЫ Ь () ( с<1> (О) с ?? неоднозначностьс ((С)<1)>(0) ияи ((<1>)(0)? ?? разрешение неоднозначности: вызывается (<1> с аргументом 0 ) ?? синтаксическая ошибка ?с' осс 1< а>Ь > (0); У< (а>Ь) >(О) ' Подобная лексическая неоднозначность возникает, когда оканчиваюшие знаки > расположены вплотную другк другу.

Например: 11зс<еессог<1пс» Ь>1с ?? еггогс неожиданная операция» (сдвиг вправо) дзс< иессог<спс» Ь2с ?? правил»нос список векторов Обратите внимание на пробел между двумя знаками >; » — это операция сдвига. Это может стать источником путаницы. А.10. Обработка исключений См. 58.3 и главу 14. оу-нос)сс еху сотроипдчпасетепс Ьапд!ег-зеа Разрешение неоднозначности просто и эффективно: если 1' — имя шаблона, то )< — это начало квалифицированного имени шаблона, так что последуюшие лексемы должны интерпретироваться отталкиваясь от этого факта; в противном случае < означает знак «меньше, чем». Аналогично, первый невложенный знак > оканчивает список аргументов шаблона.

Если требуется знак «больше, чем», то следует применить круглые скобки: Приложение А. Грамматика адиле!!оп-!гу-ЫосЬ; сгу стог-!л!г!а!!гегт~ Гипсяоп-Ьо4у Ьапа1ег-зес) Ьал41ег-зез!г Ьапз!1ег ЬапИег-зет!и, Ьал4!ег. сакса ! ехсер!!оп-Иес!агалол ! сатрапа-з!а!етепг ехсер!!ол-4ес1агаг!оп: туре-зрес!7)ег-зез1 Иес!агагог !уре-зрес(!) ег-зев аьтгасгЫес!агагог туре-зресз) ег-зес! гЬгол~-ехргезз!ол: сахои азз!ялтепз-ехргезз!ол,р, ехсер!!оп-зреса)са!!оп; оре Ы"1!егор !уре-Ы-!цз: !уре-Ы !уре-Ы-Ьзз, гуре-и! А.11. Директивы препроцессора Препроцессор — зто относительно простой макрообработчик, работающий в основном с лексемами, а не с отдельными символами.

Дополнительно к возможности определять и использовать макросы (57.8) препроцессор обеспечивает механизмы для включения текстовых файлов и стандартных заголовочных файлов 59.2.1), а также для условной компиляции, базирующейся на макроопределениях (59.3.3). Например: ФфОРТ==4 е1лс!и4е "ЬеаИег4. Ь" Фе1зТ 0<ОРТ !ллс1ийе "зотеЬеаз!ег. Ь " $е1зе Нпс1и4е <сзЫИЬ> !)еп4зу Все директивы препроцессора начинаются с символа Ф, который должен быль первым не пробельным символом на своей строке. ргергосезз!пя-!)!е: егоир,л я сир: у.сир-раг! ягоир ягоир-раг! дгоир-рагс рр-!о/селе,р, пел -11пе 1у зесг!оп сои!го!-1Ые Приложение В Совместимость Вы следуйее своим обычаям, а я буду следавагпь своим.

— Ч. Нэльер Совместимость С и С++ — «тихие» отличия — код на С, не являющийся С++-кодом — нежелательные особенности — код на С++, не являющийся кодом на С вЂ” старые реализации С++ — заголовочные файлы — стандартная библиотека — пространства имен — ошибки выделения памяти — шаблоны— иннцнализаторы в операторах гвг — советы — упражнения. В.1.Введение В данном приложении обсуждаются расхождения между С и С++, а также между стандартом С++ (180/1ЕС 14882) и более ранними реализациями языка С++. Мы хотим документировать эти различия, которые могут создать для программиста некоторые проблемы, а также указать на пути их преодоления.

Большинство таких проблем возникают, когда пытаются перевести С-программу на язык С++, когда осуществляют переход с одной из ранних версий С++ на другую или когда компилируют современную С++-программу старым компилятором. Моя цель — не утопить вас в огромной массе всех потенциально возможных проблем совместимости с каждой из существующих версий С++, а, скорее, перечислить наиболее типичные проблемы н представить их стандартные решения. При рассмотрении вопросов совместимости очень важно учесть диапазон реализаций, при которых программа должна работать. Для изучения С++ целесообразно выбрать наиболее полную и удобную реализацию.

Для производства конечного отчуждаемого продукта больше подходит консервативная стратегия, призванная максимизировать число систем, с которыми продукт будет работать. В прошлом зто служило оправданием бегства от новшеств С++. Однако теперь реализации сближаются и необходимость в переносимости с одной из них на другую уже не требует такой осторожности, как раньше. 948 Приложение В. Совместимость В.2. Совместимость С и С++ За минимальными исключениями язык С (имеется в виду стандарт С89, 180/1ЕС 9899:1990) является подмножеством С++.

Наиболее значимые различия возникают из-за большей приверженности С++ статической проверке типов. Хорошо написанные на С программы часто оказываются и допустимыми программами на С++. Компилятор выявляет все различия между С и С++. В.2.1. «Тихие» отличия За небольшими исключениями программы на С и С++ имеют одинаковый смысл. Но счастью, зти исключения («тихие» отличия) непринципиальны. В языке С размер символьной константы и перечислений равен з)зео(((п(). В С++ я(аеог'( 'а' ) равен в(еео1'(айаг), а размер перечислений определяется конкретной реализацией (84.8). В языке С++ есть комментарии О, а в языке С их официально нет (но многие реализации их допускают).

Это отличие можно использовать для написания программы, ведущей себя на разных языках по-разному. Например: 1п11(1п1 а, 1пг Ь) ( ге(ига а //* маловероятно */ Ь /* нереалистично: точка с запятой на отдельной строке во избежание синтаксической ошибки * l ! Международный стандарт языка С пересматривается с целью введения комментариев !!. Имя структуры, объявленной во вложенной области видимости, может скрыть имя объекта, функции, перечисления или типа из объемлющей области видимости. Например: (пг х (99); 1о(а г() ( Мгис1 х ( Ьлз а; ); з(ееог (х) ) l * в С - размер массива; в С++ - размер структуры * ! ) В.2.2.

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

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

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

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