Освой самостоятельно С++ за 21 день - [5]

Шрифт
Интервал

Наследование и многократное использование

Когда инженеры из компании Acme Motors решили сконструировать новый автомобиль, у них было два варианта: они могли начать с нуля или модифицировать существующую модель Star. Возможно, эта модель почти идеальна, но хотелось бы добавить турбокомпрессор и шестискоростную передачу. Главный инженер выбрал второй вариант, т.е. не начинать с нуля, а построить другую модель автомобиля Star, усовершенствовав ее за счет дополнительных возможностей. При этом он предложил назвать новую модель Quasar, Quasar — это разновидность модели Star, но оснащенная новыми деталями.

Язык C++ поддерживает наследование. Это значит, что можно объявить новый тип данных (класс), который является расширением существующего. Об этом новом подклассе говорят, что он унаследован от существующего класса, и называют его производным. Модель Quasar произведена от модели Star, и поэтому она наследует все ее качества, но при необходимости может их расширить. О наследовании и его применении в языке C++ речь пойдет на занятиях 11 и 15.

Полиморфизм

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

Язык C++ поддерживает возможность вносить изменения в выполнение одноименных функций для разных объектов благодаря так называемому полиморфизму функций и классов. Поли означает много, морфе — форма, следовательно, полиморфизм означает многообразие форм. Подробно это понятие рассматривается на занятиях 10 и 13.

Эволюция языка C++

Когда назрела идея объектно-ориентированного анализа, проектирования и программирования, Бьярн Страуструп (Bjarne Stroustrup) взял язык С (наиболее популярный для разработки коммерческих программных продуктов) и расширил его, обогатив средствами, необходимыми для объектно-ориентированного программирования.

Хотя язык C++ справедливо называют продолжением С и любая работоспособная программа на языке С будет поддерживаться компилятором C++, при переходе от С к C++ был сделан весьма существенный скачок. Язык C++ выигрывал от своего родства с языком С в течение многих лет, поскольку программисты могли легко перейти от С к использованию C++. Однако многие программисты обнаружили, что для того, чтобы в полной мере воспользоваться преимуществами языка C++, им нужно отказаться от некоторых своих прежних знаний и приобрести новые, а именно: изучить новый способ концептуализации и решения проблем программирования.

Нужно ли сначала изучить язык C

У многих возникает вопрос: "Поскольку C++ является продолжением языка С, нужно ли сначала осваивать С?" Страуструп и большинство других программистов, использующих C++, считают, что это не только не нужно, но гораздо лучше этого вовсе не делать.

Эта книга не предполагает наличия у читателя предварительного опыта программирования. Но если вы знакомы с программированием на С, первые пять глав вам достаточно лишь просмотреть. Только начиная с занятия 6, мы приступим к настоящей разработке объектно-ориентированных программ.

C++ и Java

C++ в настоящее время считается господствующим языком, используемым для разработки коммерческих программных продуктов. В последние годы это господство слегка заколебалось благодаря аналогичным претензиям со стороны такого языка программирования, как Java, но маятник общественного мнения качнулся в другую сторону, и многие программисты, которые бросили C++ ради Java, в последнее время поспешили вернуться к своей прежней привязанности. В любом случае эти два языка так похожи, что изучив один из них, вы на 90% освоите другой.

Стандарт ANSI

Аккредитованный комитет стандартов (Accredited Standards Committee), действующий под руководством Американского национального института стандартов (American National Standards Institute — ANSI), создал международный стандарт для языка C++.

Стандарт C++ также именуется в настоящее время как ISO — International Standards Organization (Международная организация по стандартизации). Кроме того, когда говорят о стандарте языка C++, иногда имеют в виду или NCITS (National Committee for Information Technology Standards — Национальный комитет по стандартам на информационные технологии), или X3 (старое название комитета NCITS), или ANSI/ISO. В этой книге мы будем придерживаться стандарта ANSI, поскольку это наиболее популярный термин.


Примечание: Аббревиатура ANSI обычно произносится как "анси".


Стандарт ANSI — это попытка гарантировать, что язык C++ будет аппаратно независимым (т.е. переносимым с компьютера на компьютер). Это значит, что программа, написанная в соответствии со стандартом ANSI для компилятора компании Microsoft, будет компилироваться без ошибок с использованием компилятора другого производителя. Более того, поскольку приведенные в этой книге программы являются ANSI- совместимыми, они должны компилироваться без ошибок на компьютерах, работающих на платформах Mac, Windows или Alpha.


Рекомендуем почитать
Литература и методы ее изучения. Системный и синергетический подход

В книге делается попытка соотнести классические методы изучения литературы с системно-синергетической парадигмой, прочно вошедшей в современное научное сознание. В основе учебного пособия идея системно-синергетической парадигмы, получившей развитие в теории науки XX века, в частности в работах нобелевского лауреата И. Пригожина и основоположника синергетики Г. Хакена. В книге рассматриваются подходы к изучению литературы, базирующиеся на теории систем. Особое внимание уделяется слову как «архетипу культуры».


Немецкая литература ХХ века. Германия, Австрия

Пособие состоит из двух разделов. Первый содержит характеристики крупнейших явлений в литературах Германии и Австрии на рубеже XIX–XX вв., в 1-й половине XX в. и во 2-й половине XX в. соответственно. Второй раздел включает преимущественно литературные портреты крупнейших немецкоязычных писателей (Г. Гауптмана, Т. Манна, Г. Манна, Р.М. Рильке, Б. Брехта, С. Цвейга, П. Хандке, Э. Елинек и др.).Для студентов филологических факультетов вузов, а также всех, кто интересуется немецкой литературой.


Актуальные проблемы современной лингвистики

Предлагаемое пособие включает развернутую программу учебной дисциплины «Актуальные проблемы современной лингвистики», хрестоматию и систему заданий творческого и проблемного характера. Издание призвано обеспечить изучение цикла общелингвистических дисциплин: «Теория языка», «Общее языкознание», «Актуальные проблемы современной лингвистики», включенных в блок специальных дисциплин государственного образовательного стандарта по направлению «Филология», а также в образовательный стандарт подготовки магистров по направлениям «Филология» и «Языковое образование».Для студентов, магистрантов, аспирантов, преподавателей-филологов.6-е издание.


Административный процесс

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


Учебник по ТРИЗ

В пособии хорошо описывается теория решения изобретательских задач и рассматриваются её инженерные приложения в качестве примеров. Последняя глава книги посвящена идеям и жизни создателя ТРИЗ — Г. С. Альтшуллера (писателя-фантаста Генриха Альтова).Сетевая, неполная версия учебника.


Международное публичное право

Учкбник предназначен для подготовки к экзаменам по предмету «Международное публичное право». В числе тем: понятие международного частного права, международное публичное и частное право международное публичное и частное право, субъекты международного публичного права, система международного публичного права, нормы международного публичного права и др.Может использоваться как электронный учебник, конспект, шпаргалка... Также пригодиться для написания письменных работ (реферат, курсовая, диплом, диссертация).