Главная » Просмотр файлов » 246071-Либерти-Освой-самостоятельно-С-за-21-день

246071-Либерти-Освой-самостоятельно-С-за-21-день (852741), страница 89

Файл №852741 246071-Либерти-Освой-самостоятельно-С-за-21-день (Освой С++ самостоятельно за 1 день. Книга) 89 страница246071-Либерти-Освой-самостоятельно-С-за-21-день (852741) страница 892021-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Однако не забывайте, что приобращении к членам внутреннего пространства имен необходимо явно указывать именавнешнегоивнутреннегопространств.Для открытия доступа ко всем членам пространства имен в текущей области видимостииспользуетсяоператорusing.Однаковрезультатеэтогослишкоммногоидентификаторовмогутполучить глобальную видимость, что чревато конфликтами имен. Поэтому использованиеданного оператора не относится к правилам хорошего тона, особенно при работе состандартными библиотеками. Вместо этого воспользуйтесь ключевым словом using приобъявлениивпрограммеидентификаторовизпространстваимен.Ключевое слово using в объявлении идентификатора используется для открытия доступа втекущей области видимости только к отдельному идентификатору из пространства имен, чтосущественноснижаетвероятностьвозникновенияконфликтовимен.Псевдонимы пространств имен аналогичны оператору typedef.

С их помощью можносоздавать дополнительные имена для именованных пространств, что оказывается весьмаполезным,еслиисходноеимядлинноеинеудобное.Неименованноепространствоможетсодержатьсявкаждомфайле.Какследуетизназвания,этопространствобезимени.Описавнеименованноепространствоименспомощьюключевогослова namespace, можно использовать одноименные идентификаторы в разных файлахпрограммы. Благодаря неименованному пространству имена переменных становятсялокальными для текущего файла. Неименованные пространства имен рекомендуетсяиспользоватьвместоключевогословаstatic.В стандартной библиотеке C++ используется пространство имен std. Однако избегайтеиспользования оператора using, открывающего доступ ко всем идентификаторам стандартнойбиблиотеки.Воспользуйтесьлучшеобъявлениямисключевымсловомusing.ВопросыиответыОбязательнолииспользоватьпространстваимен?Нет, вы можете писать простые программы и без помощи пространств имен.

Простоубедитесь,чтовыиспользуетестарыестандартныебиблиотеки(например,#include<string.h>),аненовые(например,#include<cstring.h>).Каковыотличиямеждудвумяспособамииспользованияключевогословаusing?Ключевое слово using можно использовать как оператор и как спецификатор описания. Впервомслучаеоткрываетсядоступковсемидентификаторампространстваимен.Вовтором—доступможнооткрытьтолькодляотдельныхидентификаторов.Чтотакоенеименованныепространстваименизачемонинужны?Неименованныминазываютсяпространстваимен,длякоторыхнезаданособственноеимя.Онииспользуютсядлязащитынаборовидентификатороввразныхфайлаходнойпрограммыотвозможных конфликтов имен. Идентификаторы неименованных пространств не могутиспользоватьсязапределамиобластивидимостиихпространстваимен.КоллоквиумКонтрольныевопросы1. Можно ли использовать идентификаторы, объявленные в пространстве имен, безпримененияключевогословаusing?2.

Назовите основные отличия между именованными и неименованными пространствамиимен.3.Чтотакоестандартноепространствоименstd?Упражнения1.Жучки:найдитеошибкувследующемкоде:#include<iostream>intmain(){cout<<"Helloworld!"<<end;return0;}2.Перечислитетриспособаустраненияошибки,найденнойвкодеупражнения1.День18-й.Анализипроектированиеобъектно-ориентированныхпрограммУглубившисьвсинтаксисC++,легкоупуститьизвиду,какизачемиспользуютсяразличныеподходыисредствапрограммирования.Сегоднявыузнаете:• Как проводить анализ проблем и поиск решений, основываясь на подходах объектноориентированногопрограммирования• Как проектировать эффективные объектно-ориентированные программы для нахожденияоптимальныхрешенийпоставленныхзадач• Как использовать унифицированный язык моделирования (UML) для документированияанализаипроектированияЯвляетьсялиC++объектно-ориентированнымязыкомпрограммированияЯзык C++ был создан как связующее звено между новыми принципами объектноориентированного программирования и одним из самых популярных в мире языкомпрограммированияСдляразработкикоммерческихпрограмм.Дляреализацииназревшихидейобъектного программирования требовалась разработка надежной и эффективной средыпрограммирования.Язык С был разработан как нечто среднее между языками высокого уровня для бизнесприложений, такими как COBOL, и работающим на уровне "железа", высокоэффективным, нотрудным в использовании языком ассемблер.

Язык С разрабатывался для реализацииструктурного программирования, при котором решение задачи разбивается на более мелкиерутинныеединицыповторяющихсядействий,называемыхпроцедурами.Программы, которые создавались в конце девяностых, принципиально отличаются отнаписанных в начале десятилетия. Программами, основанными на процедурных подходах,обычно трудно управлять, их тяжело поддерживать и модернизировать. Графическиеинтерфейсы пользователя, Intemet, выход на телефонные линии по цифровым каналам и массановых технологий резко увеличили сложность проектов, при этом ожидания потребителейотносительнокачестваинтерфейсапользователятакжепостоянноросли.Поднатискомтакогостремительногоусложненияпрограммразработчикивынужденыбылизаняться поиском новых подходов программирования. Старые процедурные подходы все болееотставали от требований сегодняшнего дня.

Программы быстро устаревали, а модернизацияпроцедурной программы проходила не проще, чем разработка новой. По мере увеличенияразмеровпрограммзначительноусложняласьихотладка.Проектычастоустаревалиещедотого,как попадали на рынок. Расходы на поддержку и модернизацию этих проектов превышалидоходыотихреализации.Таким образом, внедрение в жизнь новых подходов объектно-ориентированногопрограммирования было не прихотью программистов, а единственным спасением.

Объектноориентированныеязыкипрограммированиясоздаютпрочнуюсвязьмеждуструктурамиданныхиметодами,обрабатывающимиэтиданные.Болееважното,чтопритакомпрограммированиинетнеобходимостидуматьотом,какхранятсяиобрабатываютсяданныевотдельныхмодулях.Программистпростоузнаетизинтерфейсаобъекта,какиеданныеемунужнопередатьичтоонвозвращает,послечегоиспользуетготовыймодульвсвоейпрограмме.Чтожепредставляютсобойвиртуальныеобъекты?Сравнимихспредметамииобъектамиокружающего мира: автомобилями, собаками, деревьями, облаками, цветами. Каждый из нихимеет свои характеристики: быстрый, дружелюбный, коричневый, густой, красивый. Крометого, множеству объектов свойственно определенное поведение: они движутся, лают, растут,проливаются дождем, увядают.

Под словом "собака" большинство из нас понимают несовокупность пищеварительной, нервной и прочих систем, что может заинтересовать лишьузких специалистов, а мохнатого друга с четырьмя лапами, приветливо машущего хвостом изаливающегося звонким лаем. Для нас важны внешние признаки и поведение собаки, а не еевнутреннее"устройство".ПостроениемоделейЧтобы отследить все признаки и связи объекта окружающего мира, нам пришлось бысоздаватьмодельвселенной,настольковэтоммиревсевзаимосвязано.Цельюмоделиявляетсясоздание осмысленной абстракции реального мира. Такая абстракция должна быть прощесамого мира, но при этом отображать его достаточно точно, чтобы модель можно былоиспользоватьдляпредсказанияповеденияпредметоввреальноммире.Классическоймодельюявляетсядетскийглобус.Модель—этонесампредмет;мыникогдане спутаем детский глобус с планетой Земля, но первое настолько хорошо отображает второе,чтомыможемпознаватьЗемлю,изучаяглобус.Конечно, здесь имеются существенные упрощения.

На глобусе моей дочери никогда небываетдождей,наводнений,"глобусотрясений"ит.п.,ноямогуегоиспользовать,например,длятого,чтобырассчитать,сколькопонадобитсявременидляполетаотдомадоМосквы.Этоможетпотребоваться,скажем,припланированиивремениирасходовнакомандировку.Модель,котораянебудетпрощемоделируемогопредмета,бесполезна.СтивенРайт(StevenWright)пошутилнаэтутему:"Уменяестькарта,гдеодиндюймравендюйму.ЯживунаE5".Создание хорошей объектно-ориентированной программы по сути своей являетсямоделированием реальных объектов средствами программирования.

Для создания такойвиртуальной модели важно хорошо знать, во-первых, средства программирования и, во-вторых,последовательностьпостроенияпрограммыспомощьюэтихсредств.Проектированиепрограмм:языкмоделированияЯзык моделирования — это, по сути, фикция, набор соглашений по поводу принциповпредварительного моделирования программы на бумаге. Тем не менее без этого этапаневозможно создать эффективный профессиональный программный продукт. Давайтедоговоримся изображать классы на бумаге в виде треугольников, а отношения наследованиямежду ними — в виде пунктирных стрелок от базового класса к производному. Для примерасмоделируем класс Geranium (Герань), произведенный от класса Flower (Цветок), как показанонарис.18.1.Рис.18.1.СхематическоеизображениенаследованияклассаНа рисунке видно, что Geranium — особый вид Flower, и это вполне соответствуетдействительности.

Если мы с вами договоримся графически изображать таким способомнаследования классов, то будем прекрасно понимать друг друга. Со временем мы, вероятно,захотим моделировать многие сложные отношения и разработаем свой набор соглашений иправилпосозданиюдиаграмм,отображающихвзаимосвязиобъектовпрограммы.Конечно, нам также придется довести эти соглашения до сведения других сотрудников,которыеработаютилибудутработатьвместеснаминадобщимпроектом.Возможно,мыбудемвзаимодействовать с другими фирмами, имеющими свои соглашения, и надо будет потратитьвремя,чтобывыработатьобщиепринципы,позволяющиеизбежатьвозможныхнедоразумений.Втакомслучаебылобыполезнымсуществованиеединогоязыкамоделирования,понятногодлявсех.(Вдействительностиэтупрекраснуюидеюреализоватьничутьнепроще,чемзаставитьвсехжителейЗемлиговоритьнаэсперанто.)Темнеменеетакойязыкбылсоздан,иимяему—UML(UnifiedModelingLanguage—унифицированныйязыкмоделирования).Егозадачасостоитвтом, чтобы добиться единообразия в отображении взаимоотношений между объектами вдиаграммах.

В соответствии с соглашениями языка UML нашу схему, представленную на рис.18.1,следовалобыизобразитьиначе(рис.18.2).Рис.18.2.Тежеотношениянаследования,носучетомсоглашенийUMLВ соответствии с соглашениям и UML классы изображаются в виде прямоугольников, анаследование—ввидестрелки,направленнойотпроизводногоклассакбазовому.Направлениестрелкипротиворечиттому,чтоподсказываетинтуициябольшинстваизнас,ноэтонестрашно:когдамывседоговоримся,системазаработаеткакнадо.Соглашения UML совсем несложные.

Диаграммы нетрудно понимать и использовать. Мырассмотрим эти соглашения на конкретных примерах в ходе освоения этой главы, что гораздопроще изучения UML вне контекста. Хотя этой теме можно посвятить целую книгу, по правдеговоря, это будет пустая трата времени и бумаги, поскольку язык UML вполне соответствуетпринципу:лучшеодинразувидетьнапрактике,чемдесятьразпрочитать.ПроцесспроектированияпрограммПравильноевыполнениеанализаипроектированияобъектно-ориентированнойпрограммынамного важнее, чем соблюдение соглашений языка моделирования. Именно этой тематикипосвящено большинство публикаций и конференций.

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

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

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

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