Namespaces
Variants

Basic concepts

From cppreference.net
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications ( until C++17* )
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous

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

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

Некоторые слова в программе на C++ имеют специальное значение, и они называются keywords . Другие могут использоваться в качестве identifiers . Comments игнорируются во время трансляции. Программы на C++ также содержат literals , значения символов внутри которых определяются character sets and encodings . Определённые символы в программе должны быть представлены с помощью escape sequences .

Сущности программы на C++ — это значения, объекты , ссылки , структурированные привязки (начиная с C++17) , привязки результатов (начиная с C++26) , функции , перечислители , типы , члены классов, шаблоны , специализации шаблонов , пакеты (начиная с C++11) и пространства имён . Макросы препроцессора не являются сущностями C++.

Declarations могут вводить сущности, связывать их с names и определять их свойства. Объявления, которые определяют все свойства, необходимые для использования сущности, являются definitions . Программа должна содержать только одно определение любой не-inline функции или переменной, которая odr-used .

Определения функций обычно включают последовательности statements , некоторые из которых содержат expressions , которые определяют вычисления, выполняемые программой.

Имена, встречающиеся в программе, связываются с объявлениями, которые их ввели, с помощью поиска имени . Каждое имя действительно только в части программы, называемой его областью видимости . Некоторые имена имеют связывание , что позволяет им ссылаться на одни и те же сущности при появлении в разных областях видимости или единицах трансляции.

Каждый объект, ссылка, функция, выражение в C++ связаны с типом , который может быть фундаментальным , составным или пользовательским , полным или неполным , и т.д.

Объявленные объекты и объявленные ссылки, которые не являются нестатическими членами-данными , являются переменными  .

Смотрите также

Документация C для Основных концепций