Структуры (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()
Поддержать проект