Главная » Просмотр файлов » Г. Шилдт - Полный справочник по C++

Г. Шилдт - Полный справочник по C++ (1109478), страница 45

Файл №1109478 Г. Шилдт - Полный справочник по C++ (Г. Шилдт - Полный справочник по C++) 45 страницаГ. Шилдт - Полный справочник по C++ (1109478) страница 452019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Таким образом, язык С++ обладает преимущеспюми двух мощных метадон программиронания. С момента изобретения язык С.ь+ модифиввиронался трижды, каждый раз приобретая нее поные сноистна. Перный пересмотр сто оснон состоялся н 1935 году, нторои раз он поднерпвлся рснизии н 1990 голу. Несколько лет назад началась работа наа созданием стандарта языка С++. Для этого была сформиронана обьедшвенная комиссия двух организации по стандартизапии.

Л)451 (Апвспсап !чапопа1 гыапг)ап)а (ввавв(ввве— Американскии институт национальных сзагцшртон) и 150 (Виепвапопа! 5вапг)агг(а Огйапьзагюп — Организация междунаролных свандартон). Псрныи всрнонои вариант ставвларта был обнародован 25 января 1994 года. В этом документе комитет Л)ч51вг!50 С++ (членом которого был и сам анзор! пытался прилсржинаться идеи, сформулированных Страуструпом. добанин к ввим поные нозможности.

Однако н целом ставщарт лишь констатировал состояние языка Съ чч сложиншсеся н тот момент. Вскоре после опубликования псрного нарвшнга спввввввврта произошло собьпие, оказавшее огромное нлняцие на Гхвзнитие языка С-в-вч Алексавщр Стспанон (А)схапв)ег 5верапоч) разработал ставвдарпвую библиотеку шаблонов 5ТЕ (5вапв)агв) Товар)аве Ев(вгагу). Эта библиотека прсдстанляет собой набор обобшснпьвх процедур, коворьвс можно применять для обработки данных. Библиотека 5Т(. — не 'волька мощныи и элегаппвый, по и очень крупныи механизм.

Как следстние, члены комитета дружно проголосонали за нкчючеввие библиотеки 5Т1. н стандарт языка С+чч Зго значительно расширило перноначазьввьве рамки языка С++ но, кроме нсего прочего, затормозило процесс стандартизации. Следует честно признать, что никто не ожидал такои мсшлснной работы комитета по стандартизации. В ходе этой работы н язык С++ было ннссено много ноных свойств и сделано большое количество мелк«х»сонсршснстнонаний. Фактически нер- Часть !1. Язык С++ сия языка С++, предложенная комитетом, намного сложнее и крупнее, чем первоначальный вариант Страуструпа.

Послелнии ~срновои адриана стандарта был опубликован !4 ноября !997 года, и в )998 голу была, наконец, опубликована окончательная версия этого документа. Как правило, эта спецификация языка С-ьч. называется сюандиртом языка С+.ь (Ьгапдагг) С+-ь). В основу нашси книги положен станларт языка С-."+. Кроме то~о в нес включены все новые свойства языка С++. Зта версия языка предложена комитетом Агч\)/)ВО по стандартизации и поддерживается большинством компиляторов. 1 1 Что такое объектно-ориентированное программирование Поскольку стимулом разработки языка С++ являлось объскпю.ориентированное программирование (ООП), необходимо понимать его основные прин!ипы.

Обьектноориентированное программирование — довольно мошныи механизм. С момента изобретения компьютера методологии программирования резко изменились, в основном из-за возрастающей сложности программ. Например, программы ддя первых компьютеров представляли собой последоеателыюсти машинных команд, записанных в двоичном коле с помощью переключения тумблеров на псрелней панели машины.

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

Несмотря на то что создание этого языка в свое время бьщо огромнь|м шагом вперед, ЕО)(ТКАЛ трудно назвать ясным и выразительным языком, гюзволян~шим созлавать простые и цаглялпые программы. Шестидесятые годы дали толчок развитшо структур~юго программирования. Основными средствами его воплощения стали языки С и Рааса!. Структурные языки программирования позволили легко созлавать достаточно слгикные программы. Кроме того, они характеризуются поддержкои изолированных подпрограмм, локальных переменных, богатым выбором управляющих конструкций и пе ~алано известным оператором СОТО.

Несмотря на то что сгруктурныс языки представляют собой мощное средство„они не позволянж создавать очень крупныс проекты. Изак, каждый новыи метод программирования позволял создавать все более сложные и крупные программы, улучшая прелыдущие подходы. До изобретения объектноориентированного программирования многие проекты лостигали границ, за которыми структурный подход уже не работал. Имсгию лля преодоления этих препятствий была создана объеюио-ориентированная парадшма. Объектно-ориентированное программирование унаследовало лучшие идеи структур ного программирования и объединило их с новыми понятиями. В резулыатс возник новый способ организации программ.

В принципе, есть два способа организации программ: положить в основу ее код (какие деишвия ~~роисходяту) или данные ( по изменяется в резульште действий?). В рамках структурного подхода главным понятием является код. Иначе говоря, его принцип можно сформулировать так. "кол изменяет данные". Так, программа, написанная на структурном языке, например на языке С, определяется ее функциями, каждая из которых может оперировать данными любого типа.

Объектно-ориентированные программы работают иначе. В их основу положены данные, а базовый принцип формулируется так: "даш~ыс контролирук1т доступ Глава 11. Обзор языка С++ к коду"'. В объектно-ориентированных языках определяются данные и процедуры, осуществляющие к ним доступ. Итак, тип данных точно определяет, какого рода операции к нему можно применять. Для полдержки объектно-ориентированного программирования язык лолжен обладать тремя свойствами: инкапсуляцией, полиморфизмом и наследованием. Рассмотрим кажлое из этих понятий отдельно. Инкапсуляция Имкалсуллиил (шсархц!айоп) — это механизм, связывающий воедино код и данные, которыми он манипулирует, а также обеспечивающий их защиту от внешнего вмешательства и неправильного использования. В объектно-ориентированном языке код и ланныс можно погружать в "черный ящик'", ко~орый называется одьектом (об)ес!). Иначе говоря, объект — это срелство инкапсуляции.

Внутри объекта кол и данные могут быть закрытыми (рпчаге) или открытыми (рцЫ(с). Закрытый код или данные объекта доступны ~олько из друюй часзи этого же объекта. Иначе говоря, к закрытой части кода или данных невозможно обратиться извне. Если код или данные являются открытыми, они доступны из любои части программы. Как правило, открытая часть кода обеспечивает управляемое взаимолействие (интерфейс) с закрытыми элементами объекта.

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

Полиморфизм Языки объектно-ориентированного программирования поддерживают лолизгорфизм (ро!угпогрп(ап), который характеризуется фразой "один интерфейс, несколько метолов". Проша говоря, полиморфизм — это атрибут, позволяющий с помощью одного интерфейса управлять доступом к целому классу методов. Конкретныи выбор определяется возникшеи ситуацией. В регьльном мире примером полиморфизма является термостат. Независимо от вила топлива (газ, мазут, электричество и т.д.), термостат работает одинаково. В данном случае термостат (представляюшии собой интерФейс) остается неизменным, независимо от типа печки (метода). Например, если вы хотите поднять температуру до 70 градусов, нужно просто установить термостат на соответствующее деление, независимо от типа печки.

Эзот принцип распространяется и на программирование. Например, допустим, что в программе определены три разных типа стека. Один стек состоит из целых чисел, другой — из символов, а гревший — из чисел с плаваюгцей точкой. Благодаря полиморФизму программисту достаточно определить Функции ривзг(! и рор(), которью можно применять к любому типу стека. В программе необходимо создазь три разные версии этих функций для каждой разновидности стека, но имена этих Функций должны быть одинаковыми. Компилятор автоматически выберет правильную функцию, основываясь на информации о типе данных, хранящихся в стеке.

Таким образом, фуню!ии риаЬ(! и рор(! — интерфеис стека — одинаковы, независимо от типа стека. Конкрстныс варианты этих функции определяют конкретные реализации (методы) для каждого типа данных. Полиморфизм позволяет упростить программу, создавая один интерфейс для выполнения разных лействий. Ответственность за выбор комкрсглмого действия (метода) в возникшеи ситуации перекладывается на компилятор.

Программисту не обязательно вмешиваться в этот процесс. Нужно лишь помнить правила и правильно применять обсяиа ммшерфейс. Часть )!. Язык С++ Первые объектно-орие~ггированные языки были интерпретируемыми, поэтому полиморфизм был динамическим. Однако язык С++ является компилируемым Таким образом, в языке С++ поддерживается как динамический, так и статический полиморфизм. Наследование Нпсыг)оваяие (1ппспгапсе) — это процесс, в ходе которого один обьект может приобретазь свойства другого. Он имеет большое значение, поскольку поддерживает концепцию классификации 1с)азз!Йсаг1оп).

Если подумать, все знания организованы по принципу иерархической классифиюшии Например, антоновка относится в классу "яблоки", который в свою очередь является частью класса "фрукты", входяшсго в класс "плгяп'Т Если бы классификации нс сушестаовю1о, мы пе смогли бы точно описать свойства объектов. Однако при этом пеобхолимо указывать только уникальные свойства объекта, позволяюшие выделить его среди других обьектов данного класса.

Именно этот принцип лежит в основе механизма наследования, лающего возможность считать конкретный объект специфическим экземпляром более общей разновидности. В дальнейшем мы убедимся, что наследование является важным аспектом объектно-ориентированною программирования. '.''-'4 Некоторые основные принципы языка С++ В первой части книги было описано подмножество С языка С++, и все примеры представляли собой программы, фактически написанные на языке С. Начиная с этого момента, все примеры булут программами, написанными на языке С++, т.е.

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

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

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

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

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