3.2.10.2 Язык программирования С++
Си++ (англ. C++) – компилируемый строго типизированный язык
программирования общего назначения. Поддерживает разные парадигмы
программирования: процедурную, обобщённую, функциональную; наибольшее
внимание уделено поддержке объектно-ориентированного программирования.
В 1990-х годах язык стал одним из наиболее широко применяемых языков
программирования общего назначения.
При создании Си++ стремились сохранить совместимость с языком Си.
Большинство программ на Си будут исправно работать и с компилятором
Си++. Си++ имеет синтаксис, основанный на синтаксисе Си.
Нововведениями Си++ в сравнении с Си являются:
• Поддержка объектно-ориентированного программирования через
классы;
• Поддержка обобщённого программирования через шаблоны;
• Дополнения к стандартной библиотеке;
• Дополнительные типы данных;
• Исключения;
• Пространства имён;
• Встраиваемые функции;
• Перегрузка операторов;
• Перегрузка имён функций;
• Ссылки и операторы управления свободно распределяемой памятью.
147
Язык возник в начале 1980-х годов, когда сотрудник фирмы "Bell
Laboratories" Бьярне Строуструп придумал ряд усовершенствований к языку Си
под собственные нужды. До начала официальной стандартизации язык
развивался в основном силами Строуструпа в ответ на запросы
программистского
сообщества.
В 1998 году
был
ратифицирован
международный стандарт языка Си++: ISO/IEC 14882:1998 "Standard for the
C++ Programming Language"; после принятия технических исправлений к
стандарту в 2003 году нынешняя версия этого стандарта - ISO/IEC 14882:2003.
Название "Си++" происходит от Си, в котором унарный оператор ++
обозначает приращение.
В книге "Дизайн и развитие C++" Бьярне Строуструп описывает некоторые
правила, которые он использовал при проектировании Си++. Знание этих
правил может помочь понять, почему Си++ такой, каким он стал. Вот
некоторые из этих правил (подробности можно найти в "Дизайне и развитии
C++").
Си++:
• Разработан как универсальный язык со статическими типами данных,
эффективностью и переносимостью языка Си.
• Разработан так, чтобы непосредственно и всесторонне поддерживать
множество стилей программирования (процедурное программирование,
абстракцию данных, объектно-ориентированное программирование и
обобщённое программирование).
• Разработан так, чтобы давать программисту свободу выбора, даже если
это даёт ему возможность выбирать неправильно.
• Разработан так, чтобы максимально сохранить совместимость с Си, тем
самым делая возможным лёгкий переход от программирования на Си.
• Избегает таких особенностей, которые зависят от платформы или не
являются универсальными.
• Не накладывает никакой избыточной нагрузки на программу, не
использующую какие-либо возможности.
• Разработан так, чтобы не требовать слишком усложнённой среды
программирования [48].
Для встроенных систем разработан упрощенный диалект языка C++ -
embedded C++. К основным отличиям относится отсутствие ряда следующих
возможностей:
• Множественное наследование;
• Виртуальные базовые классы;
• Информация о типах на этапе исполнения (typeid);
• Новый стиль преобразования типов (static_cast, dynamic_cast,
reinterpret_cast, const_cast);
• Пространства имён;
148
• Исключения;
• Шаблоны.
Do'stlaringiz bilan baham: |