C++ Классы и объекты
C++ добавляет объектно-ориентированное программирование на основе C. C++ поддерживает объектно-ориентированное программирование. Классы — это ключевая особенность C++, и их часто называют определяемыми пользователем типами.
Классы используются для задания формы объектов. Это определяемые пользователем типы данных, которые инкапсулируют комбинацию данных и функций. Данные в классе называются переменными-членами, а функции — функциями-членами. Класс можно рассматривать как шаблон, который можно использовать для создания нескольких объектов с одинаковыми свойствами и поведением.
Определение класса в C++
Чтобы определить класс, нужно использовать ключевое словоclassЗатем укажите имя класса, а тело класса заключается в пару фигурных скобок. Тело содержит переменные-члены и функции-члены класса.
Определение класса — это по сути определение схемы для типа данных. Оно определяет, что включают объекты класса и какие операции можно выполнять с этим объектом.

В следующем примере мы используем ключевое словоclassдля определения типа данных Box, содержащего три переменные-члены: length, breadth и height:
Ключевые словаpublicЭто определяет атрибуты доступа членов класса. В области видимости объекта класса public-члены доступны извне класса. Вы также можете указать члены класса как...privateилиprotected, что мы объясним позже.
Определение объектов C++
Классы предоставляют шаблон для объектов, так что по сути объекты создаются на основе классов. Объявление объекта класса подобно объявлению переменной базового типа. Следующие операторы объявляют два объекта класса Box:
Объекты Box1 и Box2 имеют каждый свои собственные члены данных.
доступ к членам данных
К открытым членам данных объекта класса можно получить доступ с помощью оператора прямого доступа к членам..для доступа.

Чтобы лучше понять эти концепции, давайте попробуем следующий пример:
Пример
Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:
Box1 的体积:210 Box2 的体积:1560 Box3 的体积:1536
Следует отметить, что к private и protected членам нельзя получить доступ с помощью оператора прямого доступа к членам (.). Мы научимся получать доступ к private и protected членам в последующих руководствах.
Подробности о классах и объектах
Итак, мы получили базовое представление о классах и объектах C++. Ниже также приведены некоторые другие концепции, связанные с классами и объектами C++, и вы можете перейти по соответствующим ссылкам, чтобы узнать больше.
| Концепции | Описание |
|---|---|
| Функции-члены класса | Функции-члены класса — это те, определения и прототипы которых записаны внутри определения класса, как и другие переменные в классе. |
| Модификаторы доступа класса | Члены класса могут быть определены как public, private или protected. По умолчанию они определяются как private. |
| Конструкторы и деструкторы | Конструктор класса — это специальная функция, которая вызывается при создании нового объекта. Деструктор класса — это также специальная функция, которая вызывается при удалении созданного объекта. |
| Конструктор копирования C++ | Конструктор копирования — это специальный конструктор, который при создании объекта использует ранее созданный объект того же класса для инициализации вновь создаваемого объекта. |
| Дружественные функции C++ | Дружественные функцииМогут получать доступ к закрытым и защищённым членам класса. |
| Встраиваемые функции C++ | При использовании встраиваемых функций компилятор пытается развернуть код в теле функции в том месте, где вызывается функция. |
| Указатель this в C++ | У каждого объекта есть специальный указательthis, который указывает на сам объект. |
| Указатель на класс в C++ | Указатели на классы используются так же, как указатели на структуры. Фактически класс можно рассматривать как структуру с функциями. |
| Статические члены класса в C++ | Как члены данных, так и функции-члены класса могут быть объявлены статическими. |