Главная » Просмотр файлов » Г. Шилтд - Самоучитель C++ (DJVU)

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

Файл №1114955 Г. Шилтд - Самоучитель C++ (DJVU) (Г. Шилтд - Самоучитель C++ (DJVU)) 74 страницаГ. Шилтд - Самоучитель C++ (DJVU) (1114955) страница 742019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

()1пс1ийе <1озггеап~> ()1пс1пйе <сзгг1пд> сс1пс1пс)е <свпй11Ь> пв1пд папеврасе згс; с1авв зйггуре [ сваг *р; 1пп 1епр рцЪ11с; згггуре (сваг *рсг) 1еп = зГг1еп(ргг) р р=(сваг *) тка11ос(1ег + 1) 1г ('р) ( сопс « "Окибка выделения памяти1п"; ехтс (1 ); Приложение В. Ответы нв вопросы и решения упражнений ястсру[р, реп); -яптпуре () ( сопс с< "Освобождение руп"; атее (р)," ) ноус( 5)1оы () соШ: « р <с ' — длина: " « 1еп; сопл « "1п"; 1пп ли1п! ) я~п~уре я1 ("Это проверка" ), я2("Мне нравится С~-~"); я1.

яЬон() я2.я)~он() песппп О; Проверка усвоения материала главы 2 1. Конструктор — это функция, которая вызывается при создании объекта. Деструктор — зто функция, которая вызывается при удалении объекта. 2, ()1пс1не)е <1оя1пекп> пяупд патеярасе япс(; с1аяя 11пе ( 1п' 1еп; рпо11с: 11пе(упс 1)," ) „. 11пе;:1(пе(ы~ 1) ( 1еп -- 1; 1пп 1ол(1=0; 1<1еп) 1++) сопл « '*'; 1пп л~а1п() 11пе 1(10) лепилп О; Самоучитель С++ 498 3.

10 1000000 -0.0009 4. ()1пс1иг(е <1оясгеап~? пягпд пажеярасе яЫ~ с1аяя агеа с1 рпЫьс: ЙопЫе ЬегдЬг; г(оиЫе юг)ЬЬ; с1аяя гесгапо1е: рпЬ11с агеа с1 ( рыЬ11с: гесЕапд1в (с(оиЫе Ь, г)опЫе и) ( ЬегдЬг Ь; х1г)гЬ = и; ) йопЫе агеа() ( ге пгп ЬегцЬг * иьг(гЬ; ) с1аяя гяоясе1ея: рпЬ11с агеа с1 ( рпЬ11с: 1яоясе1ея [с(опЫеЬ, г(оиЫе М ( ЬегдЬг = Ь; и1г(ЬЬ = и; ) йоиЫе агеа() ( гегигп 0.5 * Ье1дЬЬ * иЫЬЬ; ) с1аяя су11пг)ег: рпЬ11с агеа с1 ( рпЫьс: су11пс(ег (с)оиЫеЬ, оопЫе и) ( Ье1оЬг = Ь; иЫЬЬ = и; ) с(оиЫе агеа () ( гегпгп (2 * 3.141б * (и1с)ГЬ/2) * (юг)ПЬ/2) ) + (3.1418 * ЬегдЬЬ ~ ю1ЖЬ) 1 ) )пг па1п () гестапа1с Ы10.0, 5.0); (яоясс1ея 1(4.

О, б. 0); сунпс1сг с(3.0, 4.0) у сощ « "Прямоугольник: " «Ь.агеа() « "1п"; сонг « "Треугольник: " «1.агеа() « "1п'"; сои( « "Цилиндр: " « с.агеа() с< "1п'") геспгп 0; 5. Тело встраиваемой функции встраивается в программу. Это означает, что реально функция не вызывается, что позволяет избежать потерь производительности, связанных с вызовом функции и возвращением функцией своего Приложение В. Ответы нв вопросы и решения упражнений 499 значения. Преимуществом встраиваемых функций является увеличение скорости выполнения программы, а их недостатком — увеличение ее объема. б.

((1пс1пс(е <ъояттеав> пягпд патеярасе ясс(; с1аяя щ'с1аяя ( гп риЫ1с: тяУс1аяя(ъпс я, гпс у) ( 1 =- х) 3 = У; уоЫ япои() ( сопя « 1 « " " « 3; гпс жа1п() пус1аяя соппс(2, 3); соуп<.яЬои(); тесппп 0; 7. Члены класса по умолчанию являются закрытыми. Члены структуры — открытыми. 8. Да. Это определение анонимного объединения. Проверка усвоения материала в целом 1. () 1пс1ибе <1ояттаав> пятясь патяеярасе ясб; с1авя ртопрс гпп соппс; ри)о11с: ртовр1(спет ~я) ( сопя << я; стп >> соппс; ) -ртотре(); ртогпрт.::-рготрт.() ( тпс 1, аког(1 О; 1<соппт.) 1++) сопя « '~а' т Ко~(Э=О Л 32000- Э++); В .-уза Самоучитель С++ 500 )и( зяа1п() ргопрг оЬ( "Введите чисззо: ") геппгп 0; 2.

()1пс1пс(е <1ояпгеаззз> ияфпд тзалзеярасе ябс); с1аяя Ьсоз ( аопЬ1е бее(;з оопЬ1 е 1лсЬе я; риЬ11с; йгоф (г(опЬ1ей ): )' гпо1:: йпо1 (с(опЬ1е й) ( йеег 1псЬея = атее * 12; сопя « кеес « "фугоя равно " « 1псЬея « "доймем.'зп"; з пг.

лза з.п ( ) ( йгоз а (12.0), Ь(99.0) з геспгп 01 3. ()1пс1ззс(е <1ояСгеат> ()1пс1и<(е <сясй11Ь> ияфпд палзеярасе яга; с)аяя сБ.се ( 1пг ва1; рпЬ11с: чоЫ го11 () т гоЫ с)1се::го11() ча1 = (гапг)() Ъ б) з-1; // генерапия чисел от 1 ло б сопс « ча1 « "1п" з 1пп пзаз и О офсе опе, сзчо; Приложение В. Ответы на вопросы и решения упражнений опе.ко11(1; кио.ко11(1~ опе.ко11(); Сио.ко111); опе.ко11(]; кио.ко11(); геСигп 0; ГЛАВА 3 Повторение пройденного 1.

Конструктор называется ттЫр10, а деструктор - аЫр10. 2. Конструктор вызывается при создании объекта (т. е., когда объект начинает существовать). Деструктор вызывается при удалении объекта. 3. с1авв мага: рпЬ11о р1апег ( /у 4. Функцию можно сделать встраиваемой, если перед ее определением поставить спецификатор 1в11пе, или если ее определение разместить внутри объявления класса. 5. Встраиваемая функция должна быть определена перед ее первым использованием. В ней не должно быть циклов. Она не должна быть рекурсивной. В ней не может быть инструкций яо1о и виз1сЬ. И наконец, она не должна содержать статических переменных.

6. загпр1е оЬ(100„'Х'1; Упражнения 1. Инструкция присваивания х = у неправильна, поскольку с11 и е12 — это два разных класса, а объекты разных типов присваивать нельзя. 2. 111пс1ис(е <1оеккеат> пзъпо пагпезрасе вгб; Мей1пе ЯХЕ 100 Самоучитель 502 с1аяя Я,сУРе ( Епс с)цеце (31ЕЕ); // содержит очередь 1п Ьеаб, а11; // индексы верщины и хвоста рпЬ11с: с( 1уре(); // конструктор чо1Й я(1п~ п1лп) / // запоминание 1пс с(ес((): // удаление из начала очереди )) Конструктор с( Туре::с) Суре() Ьеаб — Па11 = О; Помещение значения в очередь уо16 с( ~уре:;с)(1пС пшп) 11 (Па11 + 1==Ьеас( ( ) (СаЫ + 1==31ЕЕ ЯБ !Ьеас() ~ ( сопп « "Очередь потна"; геспгпу ) са11++) Ы(Са11=-31ЕЕ) са11 = О; // круговой цикл с(пепе )са11) = пцтп; Выталкивание значения из очереди 1пс с) суре::с(ес(() ( Ей (Ьеас)==~а11) ( сопс « "Очередь пуста"; геспгп О; Ьеас)++; 1Е (Ьеаб- 31ЕЕ) Ьеаб = О; // круговой цикл геппгп с)пепе(Ьеас(); 1пв тпа1п() с( ~ура С(1, П2; 1пс 1) Гоп(1=1) 1<=10> 1~-+) ( с(1.

с) (1); ) // присваивание одного объекта очередь — другому с(2 с(1; Приложение В. Ответы на вопросы и решения упражнений 60Э // демонстрация того факта, // что обе очереди имеют одинаковое содержимое йот(з'. 1; 1<=10; з.++) соиТ « "Элемент очереди 1: " « с(1 . бес(( ) « "~п"т Гол(1=1; 1<-10; сопя « "Элемент очереди 2: " « с(2.с)ес() « "~п"; тесл п О; 3. Если для хранения очереди память выделяется динамически, тогда, после присваивания одной очереди другой, когда объекты удаляются, для очереди, стоящей в инструкции присваивания слева, память освобождена не будет, а для очереди, стоящей в инструкции присваивания справа, память будет освобождена дважды. Оба этих условия неприемлемы, что и вызывает ошибку.

з.г 1. $1пс1пбе <Еозстеат> пягпс патпеярасе яЫ; СпбеГгпе ЯТЕК 10 Объявлевлле класса ясас)< для символов с1аяя ясас)~ ( с)так зсс)с[Я1ЕЕ); /т содержит стек гпс соз; уу индекс вершины стека рп)з11с: апаса (); 1! конструктор чоЫ риз)1 (сЬак с)т); ту помещает символ в стек сцак рор (); тт выталкивает символ из стека Итлтциализацил стека ясаск::ясас)'.() сопл « "Работа конструктора стека ~п"; соя =. 0; / / Помещение символа в стек чоЫ зСаск::рпзп(сйак сЫ 1 Г (Поя==ЯтуЕ) ( сопя « "Стек полон ~п"," текптп; 504 Самоучителя С++ зсс)т[тоя) = сЬ) соя++; Выталкивание сиьжола из стека сиат ясасЕ::рор() з т (тзоз.=О) [ сонг « "Стек пуст опчу тетптп О; // возврат нуля при пустом стеке тоз —; тесптп зтсК[еоз); ыоЫ зЬоызТас1(зтаск о) зпт аъзап() Г 1 атас).

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

Имеется несколько ситуаций, в которых возвращать объект было бы неправильно. Вот одна из таких ситуаций: если при создании объекта файл открывается, а при удалении объекта файл закрывается, тогда к закрытию файла приведет удаление временного объекта, которое происходит, когда функция возвращает объект.

Самоучитель С++ 3.4 1. ()1пс1цс(е <1озггеатп> ыя1пд папеярасе ясй; с1аяя рг2) // предварительное объявление с1аяя рг1 Тпс ргупсупд; // рыЫ1с: рг1() ( рггпс1пд = О; УоЫ зеГ рг1пГ(1пг. ясасыя) ( ргзпсупд = ябаспя; ) // Жепе 1пб 1пызе(рг1 о1, рг2 о2); с1аяя рг2 Тпс ргзпсупд; // риЬ11с: рг2() ( ргупсупд = О) ) чоуо зеГ ргзпГ (1пс звался) ( ргупвгпд явавпя; // йгуепй гпг 1пвзе(рг1 о1, рг2 о2); Возвращает истинУ при занятом принтере 1пб 1пызе(рг1 о1, рг2 о2) ( 11 (о1. ргзпГ1пд ( т 02. рг1пс1пд) гесыгп 1; е)яе гегпгп О; Тпс ща1п() ( рг1 р1; рг2 р2р Ы(!1ппзе(р1, р2) ) сопс « "принтер свободен~а" р соп « "установка для печати принтера р1 ...~п"; р1.зеГ рг1пГ (1)) 1й(1пизе(р1, р2)) соус « "теперь принтер занят~а"1 сопя « ьдткточевие принтера р1 ...

~п"; р1.зеГ, рг1пГ [0); Ы (! 1гпазе (р1, р2) ) соус « "принтер свободен1п"; Приложение З. Ответы на вопросы и решения упражнений соп( « "Подключение принтера р2 ... '~п"; р2.яес ргьпЬ(1); 1Е(ьппве (р1, р2) ) соп". « "теперь принтер занят~в") гегигп О; Проверка усвоения материала главы 3 1. Для того чтобы присвоить один объект другому, необходимо, чтобы тип обоих объектов был одинаков. 2. Присваивать оЫ и ОЬ2 неправильно, так как память, на которую в начале указывал указатель р объекта оЬ2, теряется, поскольку это значение указателя р при присваивании переписывается.

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

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

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

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