C++ Введение
C++ — это статически типизированный, компилируемый, универсальный, регистрозависимый, нерегулярный язык программирования, который поддерживает процедурное программирование, объектно-ориентированное программирование и обобщённое программирование.
C++ считается языкомпромежуточного уровня. Этот язык сочетает в себе характеристики языков высокого и низкого уровней.
C++ был разработан Бьёрном Страуструпом в Bell Labs в Мюррей-Хилл, Нью-Джерси, в 1979 году, в результате дальнейшего расширения и улучшения языка C, и изначально получил названиеClass C. Позже, в 1983 году, он был переименован в C++.
C++ является надмножеством C. Фактически, любая допустимая программа на C является допустимой программой на C++.

Примечание:Язык программирования, использующий статическую типизацию, выполняет проверку типов во время компиляции, а не во время выполнения.
Объектно-ориентированное программирование
C++ полностью поддерживает объектно-ориентированное программирование, включая четыре основные характеристики объектно-ориентированной разработки:
Инкапсуляция: инкапсуляция — это объединение данных и методов вместе, сокрытие деталей реализации от внешнего мира и предоставление только интерфейсов, доступных извне. Это может повысить безопасность, надёжность и гибкость.
Наследование: наследование — это создание нового класса на основе существующего класса. Новый класс обладает атрибутами и методами существующего класса и может расширять или изменять эти атрибуты и методы. Это может повысить повторное использование кода и расширяемость.
Полиморфизм: полиморфизм означает, что одна и та же операция, применяемая к разным объектам, может иметь различные интерпретации и реализации. Его можно реализовать через интерфейсы или наследование, что может повысить гибкость и читаемость кода.
Абстракция: Абстракция — это процесс выделения общих признаков из конкретных экземпляров для формирования абстрактных классов или интерфейсов, что способствует повторному использованию кода и расширению. Абстрактные классы и интерфейсы позволяют программистам сосредоточиться на высокоуровневом проектировании и бизнес-логике, не беспокоясь о деталях низкоуровневой реализации.
Стандартная библиотека
Стандартный C++ состоит из трёх важных частей:
- Базовый язык, предоставляющий все строительные блоки, включая переменные, типы данных, константы и т. д.
- Стандартная библиотека C++, предоставляющая большое количество функций для работы с файлами, строками и т. д.
- Стандартная библиотека шаблонов (STL), предоставляющая большое количество методов для работы со структурами данных и т. д.
Стандарт ANSI
Стандарт ANSI предназначен для обеспечения переносимости C++ — написанный вами код может быть скомпилирован на компьютерах Mac, UNIX, Windows и Alpha.
Поскольку стандарт ANSI долгое время остаётся стабильным, все основные производители компиляторов C++ поддерживают стандарт ANSI.
Изучение C++
Чтобы изучить C++, ключевым является понимание концепций, и не следует слишком глубоко углубляться в технические детали языка.
Цель изучения языка программирования — стать лучшим программистом, то есть уметь более эффективно проектировать и реализовывать новые системы, а также поддерживать старые системы.
C++ поддерживает множество стилей программирования. Вы можете писать код в стиле любого языка, например Fortran, C или Smalltalk. Каждый стиль может эффективно обеспечивать эффективность выполнения и эффективность использования памяти.
Использование C++
Язык C++ широко используется во многих отраслях и областях, включая:
Разработка игр: C++ — один из наиболее часто используемых языков программирования в области разработки игр благодаря высокой производительности и возможности напрямую управлять аппаратным обеспечением. Многие крупные игровые движки, такие как Unreal Engine и Unity, написаны на C++.
Разработка встраиваемых систем: C++ может играть важную роль во встраиваемых системах, таких как смартфоны, автомобили, роботы и бытовая техника. Поскольку встраиваемые системы обычно имеют строгие ограничения по ресурсам и требования к реальному времени, высокая производительность и возможности управления памятью C++ очень полезны.
Финансы: C++ широко используется в финансовой сфере, например в высокочастотной торговле, алгоритмической торговле и управлении рисками. Поскольку эти приложения требуют высокой производительности и прямого управления аппаратным обеспечением, C++ является подходящим выбором.
Графика и обработка изображений: C++ можно использовать для разработки приложений обработки графики и изображений, таких как компьютерное зрение, компьютерная графика и искусственный интеллект. Поскольку эти приложения требуют эффективной вычислительной мощности и контроля над аппаратным обеспечением, C++ — очень хороший выбор.
Научные вычисления и численный анализ: C++ можно использовать для разработки приложений научных вычислений и численного анализа, таких как численное моделирование и высокопроизводительные вычисления. Поскольку эти приложения требуют эффективной вычислительной мощности и прямого контроля над аппаратным обеспечением, C++ — очень хороший выбор.
Стандартизация
| Дата выпуска | Общее название | Примечания |
|---|---|---|
| 2020 | C++20, C++2a | ISO/IEC 14882:2020 |
| 2017 | C++17 | Пятый стандарт C++ |
| 2017 | TS по корутинам | Расширение библиотеки корутин |
| 2017 | TS по диапазонам | Предоставление механизма области видимости |
| 2017 | TS по основам библиотеки | Расширение стандартной библиотеки |
| 2016 | TS по конкурентности | Расширения для конкурентных вычислений |
| 2015 | TS по концептам | Библиотека концептов, используемая для оптимизации информации времени компиляции |
| 2015 | TS по транзакционной памяти | Операции с транзакционной памятью |
| 2015 | TS по параллелизму | Расширения для параллельных вычислений |
| 2015 | TS по файловой системе | файловая система |
| 2014 | C++14 | Четвёртый стандарт C++ |
| 2011 | - | Расширения десятичной плавающей запятой |
| 2011 | C++11 | Третий стандарт C++ |
| 2010 | - | Расширения математических функций |
| 2007 | C++TR1 | Технический отчёт C++: расширения библиотеки |
| 2006 | - | Технический отчёт по производительности C++ |
| 2003 | C++03 | Второй стандарт C++ |
| 1998 | C++98 | Первый стандарт C++ |