C++

Эта статья прошла проверку экспертом
Материал из «Знание.Вики»
C++
ISO C++ Logo.svg
Семантика мультипарадигмальный: объектно-ориентированное, обобщённое, процедурное, метапрограммирование
Тип исполнения компилируемый
Система типов статическая
Основные реализации GNU C++, Microsoft Visual C++, Intel C++ compiler, Open64 C++ Compiler, Clang, Comeau C/C++[en], Embarcadero C++ Builder, Watcom C++ compiler, Digital Mars C++, Oracle Solaris Studio C++ compiler, Turbo C++
Диалекты ISO/IEC 14882 C++

C++ (читается как си плюс плюс) — компилируемый, статически типизированный язык программирования общего назначения. Язык программирования С++ это улучшенная версия языка программирования С (Си)[1].

История

Язык программирования С++ возник в начале 1980-х годов. Бьёрн Страуструп, сотрудник компании Bell Labs, предложил некоторые улучшения языка программирования С для своих собственных нужд. Бьёрн Страуструп работал над теорией очередей при телефонных звонках в компании Bell Labs. Разрабатывая приложения, имитирующие входящие телефонные звонки, он обнаружил, что попытка использовать существовавший в то время языки моделирования оказалась не эффективной. Например язык программирования Simula обладает хорошим функционалом, но скорость его работы слишком низкая, а язык BCPL достаточно быстр, но он слишком близок к языку программирования низкого уровня и не подходит для разработки крупномасштабного программного обеспечения[2].

Проанализировав возможности существующих языков программирования, Бьёрн Страуструп решил дополнить язык программирования C (преемник языка программирования BCPL) функциями, доступными в языке Simula. В то время, язык программирования С являлся базовым языком операционной системы UNIX, на которой работали компьютеры Bell. Язык программирования С быстр, многофункционален и портативен. Бьёрн Страуструп добавил к языку программирования С возможность обрабатывать классы и объекты. В результате задачи моделирования были решены за счет использования классов, подобных языку программирования Simula и времени вычислений, за счет скорости языка программирования C[3].

В язык программирования C были добавлены классы с инкапсуляцией, наследование классов, строгая проверка типов, встроенные функции и аргументы по умолчанию. В 1980 году появилась первая версия языка программирования С, которая первоначально называлась «С with classes» («си с классами»).

Разрабатывая язык программирования С++, Бьёрн Страуструп для работы с классами написал компьютерную программу cfront, которая представляла собой транслятор, преобразующий исходный код и классы языка программирования «С with classes» в исходный код простого языка программирования С. Разработанный Бьёрном Страуструпом язык программирования неожиданно приобрел большую популярность среди программистов, за счет того, что[4]:

Выбор языка программирования C в качестве основы для создания нового языка программирования С++ Бьёрн Страуструп объяснял следующими фактами:

В 1983 году в язык программирования «С with classes» были добавлены новые возможности, такие как виртуальные функции, перегрузка функций и операторов, ссылки, константы, пользовательский контроль над управлением доступной памятью, улучшенная проверка типов и новые стили аннотаций. Полученный в результате язык программирования больше не являлся просто улучшенной версией классического языка программирования C и был переименован из «С with classes» в «C++».

В 1985 году состоялся первый коммерческий релиз языка программирования С++. Сгенерированное название языка программирования С++ происходит от оператора приращения унарного суффикса «++», который увеличивает значение переменной на единицу[5].

Использование языка C++

В отличие от других языков программирования, на C++ можно запрограммировать все, что угодно. Этот язык программирования может выполнять действия, требующие определенных инструкций, таких как векторные инструкции, которые позволяют выполнять несколько операций на одном процессорном ядре одновременно. C++ разработан таким образом, что его код может быть скомпилирован для разных платформ (операционных систем). Например, браузер Chrome, который в основном написан на языке программирования C++, работает в операционных системах Windows, Linux и macOS. Ни один другой язык не обладает такой функциональностью[6].

Существует множество примеров использования языка программирования C++, поскольку его кодовая база огромна. На нем написано все, от микрокода дефибриллятора до операционных систем и компиляторов других языков программирования.

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

Языке программирования C++ подходит для создания проектов 3D-визуализации, требующих эффективного управления большими объемами данных. Благодаря своей производительности C++ используется для разработки компьютерных игр, операционных систем и браузеров. На С++ разрабатывают приложения и программы, которые используют ежедневно миллионы пользователей по всему миру. Например, серверный код Spotify написан на языке программирования C++, и он также используется при обработке и воспроизведении видео на YouTube[7].

Язык программирования C++ был отмечен на церемонии вручения премии «Оскар»: Марк Элендт, победитель в номинации «Лучшие спецэффекты», поблагодарил комитет по стандартизации языка программирования С++ за создание и разработку систем визуальных эффектов и анимации, которые написаны на C++[8].

Преимущества и недостатки C++

Преимущества

Преимущества языка программирования C++[9]:

Недостатки

Недостатки языка программирования C++[10]:

  • C++ трудный для изучения язык программирования;
  • Чтобы начать правильно программировать, придется долго изучить язык программирования, дольше чем другие языки;
  • Существует миф о том, что программист, работающий на C++, «стреляет себе в ногу»: легко написать неправильно работающую программу, не заметить этого, но ситуация меняется, основные обновления C++ выпускаются каждые три года, и на этапе компиляции выполняется множество проверок, чтобы исключить неправильное написание программного кода;
  • Трудно использовать зависимости в C++. Если что-то не работает или нет правильного пакета, то получение правильных зависимостей обычно становится проблемой для программиста. Необходимо вручную загрузить исходные тексты необходимых библиотек со всеми зависимостями;
  • Необходимо следить за параметрами компиляции. Если есть ошибка в параметрах компилятора или версии компилятора, программа не будет собрана или не будет работать должным образом, могут возникать конфликты версий.

Литература

  • Microsoft Corporation. Разработка приложений на Microsoft Visual C++ 6.0. — Москва: Издательско-торговый дом «Русская Редакция», 2000. — 576 стр.
  • Мейерс С. Эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов. — Москва: ДМК Пресс, 2014. — 294 с.
  • Прата С. Язык программирования C++ (C++11). Лекции и упражнения, 6-е издание — Москва: Вильямс, 2012. — 1248 с.
  • Страуструп Б. Язык программирования С++. Специальное издание. — Москва: Издательство Бином, 2011. — 1136 с.
  • Элджер Дж. C++. Библиотека программиста. — Санкт-Петербург: Питер, 2000. — 320 с.

Примечания

  1. Справочник по языку C++. Microsoft. Дата обращения: 18 сентября 2023.
  2. История возникновения языка программирования С++. Основы программирования на языках Си и C++ для начинающих. Дата обращения: 18 сентября 2023.
  3. Язык C++ (неопр.). Программирование. Дата обращения: 18 сентября 2023.
  4. C++. Мегабук - Универсальная энциклопедия Кирилла и Мефодия. Дата обращения: 18 сентября 2023.
  5. Введение в C++. Сайт о программировании - Метанит. Дата обращения: 18 сентября 2023.
  6. Языки C и C++. Где их используют и зачем?. Образовательные статьи и переводы - все для программиста. Дата обращения: 18 сентября 2023.
  7. Зачем писать на C++ в 2022 году?. Хабр. Дата обращения: 18 сентября 2023.
  8. Основы С++. Академия Яндекса. Дата обращения: 18 сентября 2023.
  9. Обзор языка программирования С++. Школа программирования - Прогкидс. Дата обращения: 18 сентября 2023.
  10. Выбираем язык программирования: что нужно знать о С++. Онлайн платформа для самообразования - Скилбокс. Дата обращения: 18 сентября 2023.

Ссылки

WLW Checked Off icon.svg Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело!