Структуры (struct) и перечисления (enum) в C++
Структуры (struct) и перечисления (enum) в C++ — простые способы объединить данные и задать набор именованных значений.
Структура (struct) — это пользовательский тип, объединяющий несколько полей. В C++ struct почти то же, что class, но поля по умолчанию public.
Структуры
struct группирует связанные данные в один тип. Поля доступны напрямую через точку.
#include <iostream>
using namespace std;
struct Point {
int x;
int y;
};
int main() {
Point p{3, 4}; // инициализация полей по порядку
cout << "x=" << p.x << " y=" << p.y << "\n";
return 0;
}Вывод:
x=3 y=4
Перечисления enum class
enum задаёт тип с фиксированным набором именованных значений. Современный enum class безопаснее: его значения не путаются с числами и не «утекают» в окружающую область.
#include <iostream>
using namespace std;
enum class Color { Red, Green, Blue }; // Red=0, Green=1, Blue=2
int main() {
Color c = Color::Green;
if (c == Color::Green) cout << "Зелёный\n";
cout << "код: " << (int)c << "\n"; // к числу — явным приведением
return 0;
}Вывод:
Зелёный код: 1
Коротко
- struct объединяет поля в один тип; по умолчанию они public.
- Инициализация: Point p{3, 4}; — значения по порядку полей.
- enum class задаёт безопасный набор именованных констант; к числу — явным приведением.
Проверьте себя
1. Чем struct отличается от class в C++?
AНичем, это синонимы
BВ struct поля по умолчанию public, в class — private
Cstruct не может иметь методов
Dclass нельзя наследовать
2. Чему равно значение Green в enum class Color { Red, Green, Blue };?
A0
B1
C2
Dне определено
3. Как получить числовой код значения enum class?
AАвтоматически
BЧерез явное приведение (int)c
CНикак
DЧерез c.value()