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++
Другие расширения