Г. Шилтд - Самоучитель C++ (DJVU), страница 86

DJVU-файл Г. Шилтд - Самоучитель C++ (DJVU), страница 86 Практика расчётов на ПЭВМ (2538): Книга - 3 семестрГ. Шилтд - Самоучитель C++ (DJVU): Практика расчётов на ПЭВМ - DJVU, страница 86 (2538) - СтудИзба2019-05-08СтудИзба

Описание файла

DJVU-файл из архива "Г. Шилтд - Самоучитель C++ (DJVU)", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 86 - страница

Оператор гуреЫ можно заменить оператором дупапйс спя$ в ситуациях, когда оператор $уре(в используется для проверки правильности выполнения операции приведения полиморфных типов. 6. Оператор 1уреИ возвращает ссылку на объект типа туре шГе. Проверка усвоения материала в целом 1. Здесь представлена версия функции репегаГого, в которой для контроля за выделением памяти используется механизм обработки исключительных ситуаций. !* Использование механизма обработки исключительных ситуаций для отслеяивания онибок вьщеления памяти Ъ' Б)»аре *депекасог () 1 Ьту ( яиьесЬ (гапс(() Ф 4) ( саяе О: лепппп пе»ч 1.1пе; саяе 1: лепппп пе»ч неспапд1е; саяе 2: тебалп пем Тпгапо1е; саяе 3: лепптп пем Нп11Б)»аре; ) сабсЬ (Ьаб а11ос Ьа) тепнлп КО11; теоптп НО1.1; 2. Ниже представлена версия функции Кепега$ог0, в которой используется оператор пе»г(полого»г).

Приложение В. Ответы на вопросы и решения упражнений // Использование оператора пеи (погпгон) Язаре *депегаеог () опаре "Ге~пр; внъесп (гапд() % 4) сазе Ол гесагп пеи(поспгон) ьтпе; сазе 1: гегагп пен(погпгон) несгапо1е; саяе 2: гегагп пеи(по1)~ он) Тгтапд1е; саяе 3: гевстп пеи (погпгон) ны11вларе; 1Г!текр) гесагп гезлр; е1зе гебагп НПЬ1; ГЛАВА 13 Повторение пройденного 1. Помимо обычных для языка С операторов приведения типов, в С++ поддерживаются дополнительные операторы, которые перечислены ниже: Оператор Назначение дупагп)с сав( ге(пгегрге( сает в(а()с сав( сопв( сав( Выполняет операцию приведения полиморфных типов Преобразует указатель на один тип в указатель на другой тип Выполняет операцию "обычного" приведения типов Лишает объекты атрибута сопвт 3.

С помощью оператора 1уреЫ. 4. з.Х (Еурез.д (ПегэУед) == гуре16(р*) ) соыб « "Указатель р указывает на объект класса Пег)'теЮп"; е1зе соил « "Указатель р указывает на обьект класса вазе~в"г 2. Класс 1уре шГо — это класс, который инкапсулирует информацию о типе данных. Ссылка на объект типа 1уре ш1оявляется возвращаемым значением оператора 1уреЫ. Самоучитель С++ 5. Пропущено слово "производного".

6. Нет. Упражнения 13Л 1. /* Программа превращения пробелов в вертикальные линии бвз использования инструкыии гая-пд папеярасе ягс)" */ Ипс1иг(в <1озсгвапР Нпс1цс(в <Езглвагв> фпг пафп(1пГ. агдс, спал *агдч()) хГ(акдс!-3) ( зЫ::соШ « "Преобразование <файл ввода <файл вывода>~п"; геяплп 1; зсс):."1бзспеап~ Ип(апдч(1))у // открытие файла для ввода зМ::ойзСгеав ХопЕ(агдзт(2)); lт создание файла для вывода Ы( (йонг.) ( згс(::соил « "Файл открыть невозмозжоХгт"; ге(.агп 1; 1й(! Гфп) ( зтс(::соцГ « "Файл огкрыть невозмовно~п"; гебптп 3,; с)гаг сп; 11п.ппзе1й(зСг(::1оз;:з11рнз); ,'/ не прогпскать пробелы нМ1в (! К1п.

вой () ) ( Е 1 гг >)с)т ! зй (с(т= ")с)т=- ' ~ 'т Ы() й1п.вой() ) йопя « сЬ; Й1п.с1озв(); йод..с1озв(); Приложение В. Ответы нв вопросы и решения упражнений 2. Безымянное пространство имен ограничивает область видимости идентификаторов тем файлом, в котором они объявлены. 3. Представленная ниже форма инструкции вявя вводит в текущее пространство имен только указанный в инструкции член: ия)пя мха пространства:: алаи; Следующая форма инструкции вящ делает видимым все пространство имен: цв)пя паваарасе пня пространства; 4. Поскольку вся стандартная библиотека С++, включая потоки с)п и сов1, объявлена в пространстве имен зМ, для совместимости большинство программ нужно вводить в пространство имен зЫ.

Это дает возможность использовать в программах имена стандартной библиотеки С++ непосредственно, без уточнения, к какому пространству имен они принадлежат. Для большинства программ альтернативой была бы необходимость задания всех ссылок на имена стандартной библиотеки с инструкцией вЖ:, Другой альтернативой являются инструкции вящ только для потоков, т. е. вяпя в16::с)п и иявя в1д::сая1.

5. Размещая код библиотеки в собственном пространстве имен, вы снижаете вероятность возникновения конфликтов имен. 23.2 1. /,' Преобразование строки в целое ()ьпс1цбе <ъоял таам> ()1пс1ис)е <сяптгпд> пягпо папеярасе яй6; с1аяя яплпуре ( сЬат яЕт(80); 1пь 1еп; рц)з11с: яСкьуре(сйат *ь) ( астору(яст, я); 1еп = явт1еп(я); оре асот сЬат "() ( тесцтп яптр оре авот тле() ( тепппп 1еп; ) гпп паьп () Г яГппуре я("Функции преобразования весьма улобны"); снап *р; п~' 1; 1 =- я; УУ преобразование строки я в целое — длину строки р = я; УУ преобразование строки я Самоучитель С++ в сЬаг * — указатель на строку сопс « "Строка: Ы"г сопб « р « "1пимеет длину " « 1 « " символов.

1п"; геЬигп 0; 2. ()1пс1пс)е <гояЬгеатп> паула пагпеярасе яЫ; 1пз р(1пГ Ьаяе, 1пГ ехр); с1аяя риг 1пЬ Ьаяе; 1пг ехр; рпЬ11с: Риг (1ПГЬ, 1пс е) ( Ьаяе = Ь| ехр = е; ) орегагог 1пЬ() Й геЬпгп р(Ьаяе, ехр); ) Возвращает основание Ьаяе в степени ехр 1п' р(1пг Ьаяе, 1пс ехр) ( 1пб ге~пр; аког(гетр=1; ехрр екр--) Ьещр = .ещр * Ьаяеу гегпгп лепр; 1пЬ тпа1п() ( рог о1(2, 3), о2(3, 3); 1пг геяп1Ь; геяи1г = о1; сои « геяп1г « '1п'у геяп1Ь - о2; сопб « геяи1Ь « 'М'; объекты можно указывать непосредственно в инструкции соус, как зто сделано здесь сопГ « о1 + 100 « 'М '; гесигп 0; ~з.з 1. // Пример разделения ресурса с трассировкой работы ()1пс1пбе <1ояЬгеагп> Приложение В.

Ответи йа вопроси и решения упражнений 645 (]1пс1цс)е <свгг1пд> пв1по пащеврасе зЫ; с1азз оцгрнг ( вгаг1с сЬаг онЕЬнЕ [255]; // это разделяеы~й ресурс вгаг1с Епг 1ппве; // если переменная 1пцзе равна О, буфер доступен; иначе он занят вгагфс Епг о1пг(ех," // индекс буфера сЬаг зГг[80]; шб 1; // индекс следующего символа в всг Еп хйо; // идентификатор объекта, должен быть положительным рпЬ1 1с: оцгрцс(1пГ и, сЬаг *в) ( затору(зсг, з); 1 = О; иЬо = и; ) /* Эта функтдкя возвращает -1 при ожидании освобождения буфера, она возвращает О при завершении вывода, и она возвращает ыйо, если буфер все еще используется */ ш'. риЬЬиЕ ( ) г 1К(!ззг[1]) ( // вывод закончен 1пнве = 0; // освобождение буфера гесигп О; // сигнал завершения 1Е (!1пизе) Еппве = ыЬо; // захват буфера 1Е(шаве != ыЬо) сопб « "Процесс" « иЬо « "сейчас блокирован1п"; гегцгп -1; // буфер использует кто-то еще 1Е (злг[1]) ( /' символы все еще выводятся оплЬцЕ [о1пс(ех] = згг[1]/ сонг « "Процесс " « иЬо « " выводит символы1п"; 1++; о1пс)ех++; оиЕЬиЕ [о1пс(ех] = ' 10'; // последним всегда идет нуль геЕпгп 1; гегпгп О; ) уоЫ зйон() ( сои « онЕЬпЕ « '1п'; ) сЬаг опЕрпЕ::опсЬиЕ (255); // это разделяемый ресурс шб оцбрМ ::1пизе = О; // если переменная шиве равна О, буфер доступен; иначе нет Епг онЕрпШ:: о1п<(ех = О/ // индекс буфера 1пг щафп () ( оц(.рог о1(1, "Это проверка" ), о2(2, " статических переменных") Самоучитель С++ иЬ11е (о1.риСЬШ() 1 О2.ри~ЬОГ() ); // вывод символов О1.

9ЬОрр () ' ге1игп О; 2. $1пс1ир:(е <1ояЕгеап> ()1пс1иде <пеы> нягпу пашеярасе ясб; с1аяя сеял ( ясасгс гпс сонпс; риЬ11с: ~ее~() ( соопв++; ) -Ьеяп() ( соипЬ--Г 1пс де~соипЬ() ( еснгл сонно; ) ): 1пб кея~::сонпГ. =- О; гпс па1п() сеял о1, о2р ов; соня « о1. деЕсоип1 () « " объектов существует1п"; сеял *рр У* Отслеживание ошибок выделения памяти с помощью старого и нового механизмов обработки ошибок *у ~ту ( р = пеи Сеял; т,Р выделение памяти объекту 1~(!Р) ( уу старый стиль сонг « "Ошибка выделения ПаМятИ1П"р гели и 1; ) сассЬ(Ьас( а11ос Ьа) ( // новьж стиль соня « "Олшрбка выделения памяти1п"у гелнгп 1; сонг «О1.цетсоипг. (); соня « " объектов существует после выделения памяти1п"; УУ удаление объекта бе1еке рр соня « о1.дессошпГ.(); 647 Приложение В.

Ответы нв вопросы и решения упражнений сонг « " объектов существует после удаления',и"; гетнгп О; 13.4 1. Для исправления программы просто сделайте переменную сиггеМ модифицируемой, чтобы ее можно было изменить с помощью постоянной функции- члена соипМпяО Решение упражнения представлено ниже: // Теперь программа исправлена г((пс1иг)е <1овггеав> ив(пи пагпеврасе вМ) с1авв Сеипгцоип ( 1пс (пег; 1пс ЕагдеЕ; пшгаЫе (п( сиггепГ; // делаем переменную сиггепт модифицируемой р ~11с: Соппгцсил(тпс де1ау, пи 1 = 1) ( гагцег = с1с1ау; (пег сиггеп( = О; Ьсо1 соппе1пд О сопвг ( сиггепг += (псг; 1г(спггепЕ >= Гагиет) сон( « "~а"; гееигп йа1ее; сонг « снггепе « гегнгп сгпе; 1пГ тпаьп ( ] СоипЮои'и оЬ(100, 2); иЫ.1е (оЬ. соипг1пд () ); гегигп О; 2. Нет, не может.

Если бы у постоянной функции-члена была возможность вызвать не постоянную функцию-член, то не постоянную функцию-член можно было бы использовать для модификации вызывающего объекта. б48 Самоучитель С++ 1. Да. 2. Да, поскольку в С++ определено автоматическое преобразование из типа Ы в тип довЫе.

3. Одна из проблем неявного преобразования конструкторов состоит в возможности просто забыть, что такое преобразование имело место. Например, неявное преобразование в инструкции присваивания очень напоминает перегруженный оператор присваивания, хотя их действия не обязательно аналогичны.

Когда вы создаете классы, предназначенные для широкого использования, чтобы не вводить в заблуждение потенциальных пользователей ваших классов, было бы правильным отказаться от неявного преобразования конструкторов. 1. /* В этой версии програвюы на экран выводится число символов, записанных в буфер */ ()1пс1пйе <говггеаш> ()1пс1ыбе <вггзсгеатв> азгпу патпезрасе вЕ6," фпб п~афп() ( сЬаг Ьпй (255) ~ озегзггеыл оввг(Ьий, зткео1 Ьыг); оесг « "ввод/вывод через массивы работает с потоками1п"; озсг <с "точно так же, как обычный ввод/вывод~о " << 1002 овсг « ' ' « 123.23 « 'хп'; можно также использовать манипуляторы озсг « Ьех « 100 « или флаги формата овгг.аепг"(ьов.":асьеп~1гас)т озсг « бес « 123.23; озвг « епб1 « епбз; // гарантия того, что буфер завержится нулем вывод на экран содержимого буфера соиЕ « ЬнГ; сенс « оасг.рсоипе()т геснгп Ор Приложение В.

Ответы на вопросы и решения упражнений б49 2. /* Массивы в качестве объектов ввода/вывода гри котглровании содержимого одного массива в другой Ф/ () 1пс1пт(е <1оз Ггеата> ()1пс1ис(е <зЬгзггеавт> пз1пд патлеярасе зГс(," спаг 1гтЬпт[] = "Это проверка ввода/вывода Свж, основанного на использовании символьных массивов"; сттаг оиГЬп1 [255]; 1пГ шафтт() ( тзГгзГгеатв фзГг(1пЬпй)т озГгзГгеаттт озГг (оиГЬий, яфзео5 оиГЬпй)т с)таг сттт ы)т11е [! 1зГг. ео1' () ) 1згг. Оег (сЬ); 11 (!1згг.еог()) озсг,рис(сЬ)( озгг.

рис ('1О' )т // нулевой символ завершения «< Ввод « т пЬпй « тп т соШ « "Вывод: " « оп~Ьпй << 'тп'т геГпгп О; 3. // Преобразование строки в число с плавагвтей точкой ()1пс1ис(е <1озггеаш> ()1пс1пс(е <зГгзггеавт> пяйпд патлеярасе япс(т 1пс шайп() 11оас Ет сйаг з [ , "= "1234.5б4"; // ветцественное в виде строки 1я'сгя'сгеат 1зГг(з) т Простой способ преобразования строки в ее внутреннее представление 1ясг » Йт сопс « "Преобразованная форма: " « й <« '1п' геспгп О; Самоучитель С+-~ Проверка усвоения материала главы 13 1.

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