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

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

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

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

()1пс1цс[е <Ьозттеав> ()1пс1пс[е <овстуг> ()1пс1пс[е <сятб11Ь> паунд патеярасе асс[; с1аяя ястсуре ( с)лат *р' 1пс 1епу рпЬ11с: зст~уре(сЬат *з); -з1тсуре() ( сопп « "Освобождение памяти по адресу " « (ппяудпес)) р « ' ~п'," бе1есе [)Р/ сЬат *дед() ( теситп р; ястсуре аоретасот=(зстпуре аоЬ)) приложение з. Ответы на вопроси и решения упражнений 553 сбаг йоретатот[) (1пт1); зТттуре: з зтт?уре (сЬат "з) ( тпг 1; 1 — зст1еп(з) + 1; р = пеы сЬаг [1) ) 1?((Ф сонг « "Ошибка выделения памяти1п" з ех5.т (1); 1еп= 1; астору(р, з); .~зз Присваивание объекта вгггуре йзст1урез зоретатот=(зСттуре йоЬ) ~/ Выяснение необходимости дополнительной ззамяти 1Г (1еп < оЬ,1еп) ( // требуется выделение дополни чей памяти йе1ета [) р; р = пеи сЬаг з ?(!р) ? сонг -ззза..-.,—...

1 .замятиз,п" з ех1г (1); ) 1еп = оЬ.1еп; затору(р, оЬ.р); гебагп +б)зйз) /~ Индексируеьезе сзвзволы в сгроке сьаз- азттсуре: зоретатот[) (1пс 1) ( 1й (з.<0 ) ( з.>1еп-1) сенс « «'зпЗнаЧение индекса сонг « 1 « " выходит за границы массива'зп"'з ех1? (1); тетитп р[1); Самоучитель С~~ 1пг та1п() ( асгьуре а("Привет" ), Ь("Здесь" ); СОпг «а.цЕГ() « 'М'; сонг « Ь.дег() « а = Ь) // теперь указатель р не перезаписываетсл соус « а.

де~ () « '~п'; сонь « Ь.деГ() « Доступ к символам посредством индексирования массива сопб « а[О] « а(1) « а[2] « "~п") Присваивание символов посредством индексирования массива а [0) = 'Х'; а[1] .= 'У я а(2) = 'Е'; соус « а.дег() « "'~п"; гегпгп О; 2. ()1пс1пс)е <1ояггеаш> ()1пс1ибе <сяЫ11Ь> пяупд пашеярасе ясс(; с1аяя йупаггау ( 1пе Фр 1пг я1ге; рпЬ11с: с(упаггау (1п~ я]; с[упаггау йорегасог= (с(упаггау йоЬ) 1п. аорега1ог [) (1пГ 1); 22 Конструктор йупаггау:: йупаггау (1пТ я) р = пех 1пл [я); 1Е(!р) соил « "Ошибка выделения памяти~п"р ех1й (1); я1ге = я; В. Ответы на вопросы и решения упражнений 555 Приложение // Перегрузка оператора = для класса с(упаггау с)упаггау айупаггау::орегабог=(с)упаггау йоЬ) )пг 1; з.г(втге!=оЬ.в1ге) совв « "нельзя копировать массивы разных размеров ! зп" ех1г (),',; аког (1=0; 1<ваге; 1+~-) р [1] = оЬ. р[1) гесззгп *ГЬ1в; Перегрузка оператора [] 1пс ас)УпаггаУ:: оРегаЬог[)(зпб 1) ( з1 (з<0 ! ! з.>вз.ге) ( сов( « "зпВначение индекса соц( «! « " выходит за границы массиваз,п"; ех1Т (1) з гегцгп р['] з п~ вза1п () ( 1тзс -' ) с)упаггау оЬ1 (10), оЬ2 (10), оЬЗ (100) оЬ1[3) = 10; = оЬ1[3); соШ « ' « "зп"з оЬ2 = оЬ1; 1 = оЬ2[3)з сов[ « 1 « "зп"з Выполнение следующей инструкции ведет к ощибке оЬ1 = оЬЗ; // присваивание массивов разных размеров гегзгп 0; Проверка усвоения материала главы 6 1.

1! Перегрузка операторов « и » упражнений 557 Приложение В. Ответы на вопросы и решения 2. Ипс1ас?е <говсгеат> пвгпо патпеврасе вгс?; сХавв гЬгее о гпг х, у, риЬ1гс Гпгее с?(гпс ?, ?пО "'., ?пО )с) ( х=т; у ) гпгее с?() ( х = О; у = О; л = О; ~оЫ оег(гпг ь?, ?пО аО, ?пг а)с) ( з.=х; 1 =у; )с=в; Опгее с( орегасог+ (ГЬгее с?оЬ2); Гпгее б орегасог- (ГЬгее с(оЬ2) гпгее с)орегагог++(): Гпгее аорегасог †( ) гпгее с? сЬгее с): сорегагог+ (спгее с? сЬ2) ГЬгее с? сепр.

севр.х =- х + оЬ2.х; севр. у = у + оЬ2.у; севр.ъ = х + оЬ2.г? тесптп ?еспр; ГЬгее с? гЬгее с(::орегаеог- (ГЬгее с?оЬ2) ( ЬЬгее с( гетр; гелер.х = х — оЬ2.х; 1евр, у = у — оЬ2.у; гетр.г = х — оЬ2.г; гегигп Гегр; ГЬгее с? гпгее с(::орегасог++() х++ ? гег~тп *гав~ Самоучитель С++ йЬгее с)сЬгее с)::орепатоп--( ) ( х--; у я Ф' геспсп *пп1я; 1пс ~па1п() оЗ = о1 + о2; оЗ.деп (х, у, г); сои1 « " Х: " « " «~т х « р У' « "~пч; сопя « 2: " « я оЗ = о1 — о2; оЗ.де~(х, у, я) сопя « " Х' " « «у х«",у: « ~ ~ и ~ ~ т сопя « Е: " « к ++о1, о1.сей (х,у, соус « " х: сопя « Е: я); Н « < « и'$,пи . Н « у к); Н « о1.дес(х, у, сопя « " Х: сои~ « 2: х« ",у: « "~п"; П « у «я ге~ип~ 0; 3.

$1пс1пбе <1ояЕкеап> ыя пц пап~еярасе яЬЗ; с1аяя ситес с( 1пс х, у, г; риЫ1с: йЬгее с)(1пС 1, 1пС 3, 1пп х--1; у сйпеес(() ( х= 0; у=О; я =0: ~Палее с( о1(10, 10, 10), о2 (2, 3, 4), оЗ; (пт х, у, Приложение В. Ответы нн вопросы и реыення упражнений .ко1.й деГ ((пп ят, гпп ы), гпг ыЮ вЂ” -х; (=у; )с=в; пЬгее й орегагог+(гЬгее й аоЬ2)у ПЬгее й орегаГог-(ГЬгее с( аоЬ2); йНепй ГЬгее й орегаГог++(ГЬгее й аоЬ) йг(.епй гЬгее й орегагог--(гЬгее й коЬ); ПЬгее й гЬгее й::орегагог+(ГЬгее й аоЬ2) ( гЬгее с( 1етрт Тапер.х = х + оЬ2.х; гетр.у = у + оЬ2.уу гех1р.

г = е + ОЬ2. е; гегпгп петр; ГЬгее й ГЬгее й".:орегаГог-(гЬгее 6 яоЬ2) ГЬгее б сепр; ген,х = х — оЬ2.х; Гевар.у = у — оЬ2.у; ге.пр. г .= к — оЬ2. я; геппгп Гехи; ПЬгее й орегаГог++(ГЬгее й ЯоЬ) оЬ.х++; оЬ.у+и; оЬ. +-; гепигп оЬ; ПЬгее й орегаТог--(ГЬгее б аоЬ) ( оЬ.у--; оЬ. к--; геппгп оЬ; Самоучитель С++ 560 1пс Гва(П () спгее 6 о1(10, 10, 1пс 10), о2 (2, 3, 4), оЗ; оЗ .= о1+ о2; оЗ.дее(х, у, соие с< " х: соус « Е: " с< у; 61 с< «х х « « У1пГ 03 = о1 — а2 оЗ.де'(х, у, соее с< " х: соие с< е: х«",у: « ~ и ~~ с <с у; <с х +-~-о1: о1. дег (х, у, соус« "Х: сопс с< У,: х) ) " с< х«", Ъ': сс "'сп" с с< у' с< г --о1; о1.дес(х, у, сонг <с " Х; сопс <с Х.

г) г м с< х « "', У " « у. « "1п"; гегигп 0; 5, Перегрузка оператора = может потребоваться, когда применяемого по умолчанию поразрядного копирования недостаточно. Например, вам может понадобиться объект, в котором была бы копия только части данных исходного объекта. 7. Фъпо1ос(е <1оатгеасп> еегщ папеераое асс); с1аее спгее с( ( гпс х, у, г; рцЫ1<п сйгее с(((пс (пг ), (пг )с) 4.

Бинарная оператор-функция — член класса получает левый операнд неявно, через указатель 1Ыа. Дружественная бинарная оператор-функция явно получает оба операнда. У унарной оператор-функции — члена класса нет явно заданных параметров. У дружественной унарной оператор-функции есть один параметр. ва вопросы и решения упражнений 567 Ответы Приложение ( х=1;у=1; г=)с; ) ГЬгееа() (х=О; у=Ор г=О; ) чо1о дег [1пг а1, 1пс а1, 1пс аЕ) ( 1 — х~ 3 — у~ )< — г ) 1г1епс( '=Ьгее Й орегагог+ (ГЬгее 6оЬ, 1пп 5г1епа ГЬгее <) орегагог+ (1пп 1, гЬгее <( оЬ) 'гЬгее с( орегагог+(гЬгее о оЬ, пс гЛгее <( 'сепр; гетр.х = оЬ.х ~евр.у = оЬ.у + 1; гевар. г = оЬ. г ~ 1; геппгп сепр; ГЬгее б орегаСог+ (1пс 1, 'сЬгее б оЬ) ( гЬгее <) ге~пр; гетр .

х = оЬ . х т 1; гев~р . у = оЬ . у + Гевар,г = оЬ.г -~ геЬигп Ьепр; 1пппа1п () гЬгее с)о1(10„ 10, 10) 1пп х у, е~ о1=о1+ 10; о1.дег(х, у, г): сопп « " Х: " « х « ", У: " « у; соил « е: " « г « "~п"; о1 = -20 + о1; о1.дег (х, у, г) р сопп« "Х: '* « х « ", у: " « у; « "1п"; сонг « Б; " « г геспсп 0; Самоучитель С++ 8. ()1пс1пбе <йояттеатп> пяйпд пап~еярасе зЬс(," с1аяя сЬгее о 1пт х, уу г; рпЬ11с: гьтее <((йпс 1, 1пт 1, 'пт х=й; у=3 ~ ЬЬтее б() ( х = О; у — — О; г = О; чойс( дет (йпс 81, 1пт й1, 1пт 5)<) ( ) 1пт оретатот== (ЬЬтее й оЬ2) гпь оретасот!=(тьтее аоь2) 1пт орегаОот 1((ЬЬтее т(оЬ2); 1пг гЬгее б::оретатот== (тЬтее боЬ2) гетигп х==оЬ2.х йй у=.=оЬ2 .

у йй г==оЬ2.г; 1пь тЬтее а::оретатот!=(тЬтее с(оь2) ( геяпгп х!=оЬ2.х ЯЯ у!=оЬ2.у йй г!=оЬ2.г; 1пя ЬЬгее о:: оретагот(( (ГЬтее г(оЬ2) ( геяпгп х) (оЬ2.х йй у 1 (оЬ2 . у йй г()оЬ2.г; ) 1пяюайп () 10), о2 (2, 3, 4), оЗ (О, 0„0)1 "Ьтее с( о1(10, 10, "о1 == о11п"; 11(о1==о1) сопя « 1й(о1!=о2) сопя « "о1 != о21п"; йг(оЗ((о1) соус « "о1 ипл оЗ равняется истина1п"; гегигп О; ПриложениеВ.

Ответы ме вопросы и решения упражнений 9. Оператор [~ обычно перегружается для того, чтобы использовать привычный индексный синтаксис для доступа к элементам инкапсулированного в классе массива. Проверка усвоения материала в целом 1. /" в данной программе для простоты не был реализован контроль сшибок. Однако в реально функдионируощем приложении такой контроль обязателен 41пс1пс(е <ьозтгеатс> ()1пс1нс(е <сятггпд> пя1пд патвеярасе зтс)1 с1аяя япгтуре сиат з(В0(с рп)з11с: зстсуре О ( *я = '~о'' ) зггтуре(спаг *р) ( ятгсру(з, р); ) с)1ат *де'() ( тегнтп я; ) зтгтуре орегасог+(зтгтуре я2) яптсуре оретапог=(зггтуре я2); гпс орегаСог<(зтггуре з2); гпт орегатог>(зтгтуре з2); 1пп орегатот= (зтгтуре я2); ятгпуре згтсуре::орегаког+(зтттуре я2) ( ясгсуре тешр; ятгсру (тешр. з, зтгсру(гешр.з, я2 .з); ге штп ' ешр; ятттуре зтгтуре::орега1ог=(зтгсуре з2) ятгсру(я, з2.я); тетдтп *сй1з," тпт зтгтуре::оретатот<(зттсуре з2) гетп и зтгсп~р(з, я?.я) < 0; Самоучитель С++ 5б4 )пС яг гуре::орегагог> (ягггуре я2) ге(итп ясгспр(я, я2.я) > О; ) гпг яТггуре::орегагог==(яггТуре я2) геппгп авгур(я, я2.я) == О; гпг ваагн () ( яггсуре о1("Привет" ), о2(" Здесь" ), оз; оЗ =о1+ о2; соШ « оз.сея() « "~п"; оЗ = о1; 1г(о1= оз) сонг « "о1 равно оз1п"; 1Г (о1>о2) сопя « "о1 > о21п"; ьг(о1<о2) сонг « "о1 < о2~п"; геспгп О; ГЛАВА T Повторение пройденного 1.

Нет. Перегрузка оператора просто увеличивает количество типов данных, с которыми оператор может работать, но не влияет на его исходные свойства. 2. Да. Не нужно перегружать операторы только для встроенных типов данных С++. 3. Нет, приоритет оператора изменить нельзя. Нет, нельзя изменить и число операндов. 4. ()1пс1и<(е <ьоятгеаю> ияьпд папеярасе яес(; с1аяя аггау ( ггпс пцтя (101' рпЬ11с: аг1 ау () Р Приложение В. Ответы нв вопросы и решения упражнений 555 уоЫ аег(з.пг п[10] ) з уоЫ тюзу(); аггау орегаЬога(аггау оЬ2); аггау орегааог-(аггау оЬ2); 1пЬ орегМог==(аггау оЬ2); аггауз:аггау() (гзГ 1 ) 1ог(з.

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

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

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

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