Главная » Просмотр файлов » Спец часть (часть 2) (3 поток) (2015) (by Кибитова)

Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 25

Файл №1161602 Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (Ответы на спец часть) 25 страницаСпец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602) страница 252019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

. }; объектов,других(множественноенаследование)классов. информация1. ПриСущность— классоднотипныхо которыхДинамическийполиморфизм,механизмвиртуальныхфункцийинформация:разработкеER-моделиопределяетсяследующаядолжнабытьучтенавмодели.СущностьврамкахООПпредстав-базоКласс,поведениеи структура которого наследуется, называется— списоксущностей,ляетсяклассом.вым (родительским) классом, а класс, который наследует — производным— список атрибутов,классом.2. ПримечаниеЭкземпляр сущности — объект, создаваемый на основе класса.— описание связей.по работепрограммы.ВАтрибутпроизводномклассеструктураи поведениебазовогокласса3.

Комментарийсущности—именованнаяхарактеристика.в ООП— (инфоринСвязимеждусущностямиреализуютсяспомощьюмеханизмовнаслемационныеи методы),и переопределяются.1)формационныйв началечленыработысоздаетсятипа класса C (приэтом через объявчленклассаобъектдополняютсяагрегирования,использования.Агрегация—этоотношениемеждуклассамитипацелое/часть.Агрегиленныйуказательбудутдоступнытолькочлены,дополнительныеунаследованныеотибазовоговдования,производномклассеуказываютсятолькопереопВидымеждуклассами4.отношенийКлючсущности—совокупностьатрибутов,однозначноопредеруемыйклассвтойилиинойформеявляетсячастьюагрегата.Объекткласкласса А).При класса.созданииобъекта сначаласрабатываетконструктор базовогобазовогоределяемыечленыПроизводныйклассявляется уточнениемляющихобъект.класса,создаваяцелочисленныймассив.Таккакдляэтогомассивафактиса-агрегата может хранить объект агрегируемого класса, или хранить ссылкукласса:ческогонапараметра нет, то в качестве размера массива берется значение по(указатель)5.

умолчанию,Связь —него.ассоциациясущностями.в использованииобъектовразработанныхклассовв качествеинфорзаданное типовв междуконструкторебазовогокласса.Затем срабатываетclassz: publicyсоздавая{. .других. дополнительный}; классов. вещественный массив.конструкторклассаС,мационныхчленовприописанииТипысвязей:Пример:в концеработы удаляется созданный объект. Так как деструктор базового— 2)одинк одному,Наследование— отношение между классами, при котором один класс покласса объявлен виртуальным, то сначала срабатывает деструктор текущегоПример:вторяетструктуруи{вещественныйповедениекласса(одиночноенаследование)или— объекта,одинко nodeмногим,class.

. .};//другогоагрегируемыйкласс,описывающийудаляямассив,а затем— деструкторбазового класса,//вершинудеревадругих(множественноеклассов.работы данной программы будетудаляяцелочисленныймассив. В результате—classмногиекомногим. наследование)classtreepointвыданаследующаяинформация:{// класс-агрегат,описывающийдерево. базо{ Класс,поведениеи—структуракоторогоПримерсвязи:группастуденты.Связь наследуется,можетиметь называетсяоднуиз двухnode*//единственныминформационнымчленомintx,y;root;вым (родительским)классом,акласс,которыйнаследует—производным//являетсяуказательнавыделеннуюpublic:модальностей:A() — C()Агрегацияэтоотношениемеждуклассамитипа целое/часть.

Агреги// вершину— корень дерева{ . size. .}size int()= 10double= 5классом. point—может(можетбыть,аможетинебыть),~C() в~A()руемый классилиx1,инойpublic:point(тойintintформеy1 ) является{ . . .}частью агрегата. Объект клас()хранить{ классеrootобъект=структура0; }. tree.можетВ. производноми поведениебазовогокласса (инфорса-агрегатаагрегируемогокласса,или хранитьссылку. члены. .};мационныеиметоды),дополняютсяипереопределяются.(указатель)3)};Еслинабынего.деструктор базового класса не был объявлен виртуальным, то при66удалениис типомуказателяpp1 для объектабыл быв производномклассев соответствииуказываютсятолькодополнительныеи переопclassz1 объектавызвантолькодеструкторбазовогокласса.врезультатевещественныймассив{ Пример:ределяемыечлены класса. Производный класс является уточнением базовогоpointp; является испециальнымКомпозициявидомагрегирования(такназыосталсябынеудаленным,былабывыданаинформация:класса:Видыотношениймеждуклассамиintz;ваемоеpublic:сильное агрегирование). Композиция объектов заключается9.2.

Агрегация9.1. Наследование9.2. Агрегацияclassnode { . . .};// агрегируемый класс, описывающийA() ( C()z1int z2 ) y{ {.. //.. .вершинудереваclass.=}};size z:int public= 10 size double5. .. treeclass~A()67в использованииобъектов типовразработанных классовв качествеинфор};{// класс-агрегат,описывающийдерево.node* root;// единственныминформационным членоммационных членовпри описаниидругих классов.z1*= new наz1(1);4) z3Несмотрято, что методsc() в классеC является// являетсяуказательнавиртуальным,выделенную он недоступен напрямую через указательpp1, —таккак этогометода нет в структуре// вершинукореньдереваПример:public:классаA.

Поэтому для вызова этого метода для созданного объекта черезИспользование—rootотношениеtreepp(){= 0; } между классами, при котором одинуказатель1 требуется преобразование:. .класс в своей .реализациииспользует в той или иной форме реализациюclasspoint};объектовкласса.Агрегация— этоотношение между классами типа целое/часть. Агреги{ другого((C*)pp1)int x,y;руемыйклассвтойили инойформеобъектовявляетсядругогочастью классаагрегата.ОбъекткласИспользованиеоднимклассомможетпроявpublic:Композицияявляетсяспециальнымвидомагрегирования(такназыса-агрегатаможетобъектагрегируемогохранить intссылкуСдругойбыв классес был описанкласса,метод силипрототипом:sa(),point()хранить{ если.

. образов:.}лятьсяоднимизстороны,следующихваемоесильноеагрегирование).Композицияобъектовзаключается(указатель)нанего.point(intx1,inty1){...}то он был бы виртуальным и по операции pp1−>sa() сработал бы его алгоритм,—а Имякласса sa(),используетсяв профилеметодадругого класса. алгоритм. одного.неметодаобъявленногов базовомклассе.};— Пример:В теле метода одного класса создаётся локальный объект другого67классаz1class{— classМетододногообращаетсяк методукласс,другогоописывающийкласса (не совсемnode. . .};//агрегируемыйpointp; { класса//вершинудеревачастныйслучай предыдущего способа использования, так как приint z;classtreepublic:вызовестатическихклассов локальныйобъект недерево.создаётся).{ z1 ( int z2 ) {членов//описывающий. .класс-агрегат,.

}root;// единственным информационным членом. . node*.// является указатель на выделенную};// вершину — корень дереваДляреализациимеханизма виртуальных функций используется специальz1* public:z3 = new z1(1);tree () с{полиморфнымroot = 0; } типом, массив указателей на виртуальныеный, связанный. . .методыкласса.Такоймассив называется Таблицей Виртуальных Методов};Использование— отношение между классами, при котором один9.2.

Агрегация11.2. Реализация виртуальныхфункций(ТВМ). в каждый полиморфный объект компилятор неявно помещает укакласс в своей реализации использует в той или иной форме реализациюзатель, условно обозначаемый какобъектовдругого класса.Композицияявляется специальным видом агрегирования (так называемоесильное агрегирование).КомпозициязаключаетсяИспользованиеодним классом объектовдругогообъектовкласса можетпроявvtbl* pvtbl;ляться одним из следующих образов:67Имя одного классаиспользуетсяпрофилеметода другогоклассана—соответствующуюТВМ,хранящуюв адресавиртуальныхметодов.— В теле метода одного класса создаётся локальный объект другогоклассаный, связанный с полиморфным типом, массив указателей на виртуальныеметоды класса.

Такой массив называется Таблицей Виртуальных Методов(ТВМ). в каждый полиморфный объект компилятор неявно помещает указатель, условно обозначаемый какvtbl* pvtbl;на соответствующую ТВМ, хранящую адреса виртуальных методов.В ТВМ типа-наследника имеющиеся адреса одинаковых методов заВ ТВМтипа-наследникаимеющиесяадресаметодовзамещаются,а новые— дописываютсяв конец.Так, одинаковыхесли бы в классеС был86мещаются,а сновые— дописываютсяв конец.Так,еслибы в классеВметодТВМтипа-наследникаадресаодинаковыхзаописанпрототипомint saимеющиеся(), то ТВМдляклассаС имелабыметодоввид:С былописанметодс прототипомint sa(), то ТВМдля Так,классаС имелабы вид:С былмещаются,а новые— дописываютсяв конец.еслибы в классе:: (), &A() для класса С имела бы вид:описан метод с прототипом intAsaто~ТВМA:: & ~A()CA:::: &&sa~()A()()C:: & saCC:::: &&~saC()C:: & ~C()()CC:::: &&sc~()C:: & scC()()ТаккакуказательнаТВМнаходитсяначале объекта, то онДинамический полиморфизм, механизмфункцийC:: виртуальных& sc() в самомТаккакуказательнаТВМнаходитсявсамомначалеобъекта,ондоступен всегда, каким бы ни был тип указателя на объект.Конечно,притоэтомТаккак бытьуказательнаходитсясамомначалеобъекта,ондоступенвсегда,какимбынаниТВМбыл типна объект.Конечно,притоэтомизТВМмогутвыбранытолькотеуказателяметоды,в которыеимеютсяв структуредоступенвсегда,какимбынибылтипуказателянаобъект.Конечно,приэтомизТВМмогутбытьвыбранытолькотеметоды,которыеимеютсявструктуреуказателя (входят в так называемый интерфейс), То есть, как показаноизТВМ могутбытьтолько тетипаметоды,которыеструктуре(входятввыбранытакпроизводногоназываемыйинтерфейс),То имеютсяесть,какв указательпоказанообрабатываетсячерезвуказателяпримере,еслиобъектуказателя(входятвтакназываемыйинтерфейс),Тоесть,какпроизводноготипаобрабатываетсячерезуказательвпримере,еслиобъектбазового типа, то из ТВМ данного объекта можно вызывать толькопоказановиртупроизводноготипаобрабатываетсячерезуказательв примере,еслитообъектбазовоготипа,из ТВМданногообъектаможновызыватьпритольковиртуальныеметоды,перечисленныев базовомтипе.Естественно,этомбудетбазовоготипа,тоиз ТВМданногообъектаможновызыватьвпритолькоальныеметоды,перечисленныев базовомЕстественно,этом виртубудетвыполнятьсяалгоритм,определенныйдлятипе.данногообъектасоответствииЧистаявиртуальнаяфункция—функциявида:альныеметоды,перечисленныевбазовомтипе.Естественно,приэтомбудетвыполнятьсяалгоритм,определенныйдляданногообъектавсоответствиис его типом.свыполнятьсяего типом.

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

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

Список файлов ответов (шпаргалок)

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