C++ (си-плюс-плюс)

C++

C++ – строго типизированный, компилируемый, мультипарадигмальный язык программирования, относящийся к классам объектно-ориентированных и процедурных. На C++ можно создавать практически все: игры, программы для Internet of things, компьютерные игры, сложные десктопные приложения, микроконтроллеры, серверы, нейросети, мобильные приложения и др. На нем написан даже Facebook (включая php).

На ноябрь 2020 занимает четвертую строчку в рейтинге TIOBE, пропуская вперед Java, C, Python. Эксперты называют язык C++ одним из самых мощных и актуальных в текущих реалиях.

История C++

История языка (читается «си-плюс-плюс») начинается в восьмидесятых годах прошлого века и плотно связана с именем датчанина Бьерна Страуструпа, ученого и программиста.  Работая в компании Bell Labs, Страуструп планировал внести несколько усовершенствований в язык C, которые отвечали бы его профессиональным задачам. Страуструп решил добавить в С возможности Simula 67, например, классы с инкапсуляцией, их наследование, аргументы по умолчанию, проверку типов. Первые версии были названы “C с классами”. Работая над ним, Страуструп создал специальный транслятор, переводящий исходник “C с классами” в C. Внезапно для самого автора его разработки стали популярными, заинтересовав коллег. В 1983 году язык уже включал в себя столько доработок, изменений и совершенствований, что новые возможности перерастали просто «дополнения» в связи с новаторскими нововведениями. «C с классами» был обозначен как C++. Спустя два года было выпущено первое издание одной из самых знаменитых книг по C++ авторства Страуструпа, ставшей классикой – «Язык программирования C++».

Принципы C++

Работая над расширениями, а впоследствии над новым языком, Страуструп заложил несколько принципов, ставших “философией” языка и объясняющих, почему все именно так, а не иначе:

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

Особенности C++

  • Строгая типизация

Строгая или статическая типизация языка значит, что разные типы переменных нельзя использовать в рамках одного выражения, а неявные преобразования не будут выполняться автоматически. С одной стороны, это дает уверенность, что все пойдет так, как планирует разработчик, с другой – это лишает язык гибкости.

  • Поддержка константности

Понятие включает как физическую (const) и логическую (mutable) констатность. Благодаря этому написанная программа более надежная, поскольку позволяет компилятору отметить ошибки изменений значений переменной. Все это дает разработчику, изучающему программу, понимание правильности использования классов и функций, одновременно с этим являясь подсказкой для оптимизации.

  • Высокая совместимость с языком C

У C++ и C синтаксисы очень похожи, но не идентичны. Код C может быть скомпилирован на C++ с минимальными изменениями. Интерфейс прозрачен, благодаря чему библиотеки C вызываются из С++ без дополнительных затрат.

  • Указатели по умолчанию

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

  • Эффективность

Язык изначально спроектирован так, чтобы у разработчика был максимально возможный контроль над всей структурой и порядком исполнения программы.

  • Небольшое количество стандартных библиотек

Стандартная библиотека – это количество классов и функций, которые написаны на базовом языке. И в C++ их намного меньше, чем, например, в Java.

5 1 Голос
Рейтинг статьи
2 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
АлексейМ
3 лет назад

нам одно время втолковывали, что conio и iostream — самые основные библиотеки

Lena9
3 лет назад
Ответить на  АлексейМ

у Страструпа есть еще хорошая книжка Дизайн и эволюция C++. Местами, имхо, даже сильнее