C++ Урок 12: Структуры — Объяснение с примерами

Структуры в C++ группируют связанные переменные под одним именем. Они похожи на классы, но имеют отличия, которые будут рассмотрены позже. Структуры организуют и упрощают работу с данными, особенно при описании сложных объектов.

Что такое структура?

Для описания автомобиля, имеющего множество характеристик (количество мест, колёс, цвет, скорость, вес, габариты и т.д.), можно объявить множество отдельных переменных типа int, float, char и т.п. Однако, структуры делают этот процесс более упорядоченным. Структура объединяет эти переменные в единое целое.

Создание структуры

Структура создаётся вне функций, используя ключевое слово struct. За ним следует имя структуры, фигурные скобки {}, внутри которых объявляются переменные (поля) структуры. Объявление завершается точкой с запятой.

struct Auto {
  int wheels;
  float speed;
  char color; 
};

Пример создаёт структуру Auto с полями wheels (количество колёс), speed (скорость) и color (цвет).

Использование структуры

Имя объявленной структуры становится новым типом данных. Можно создавать объекты (экземпляры) этого типа.

int main() {
  Auto skoda; // Создаём объект структуры Auto с именем skoda
  skoda.color = 'r'; // Присваиваем значение полю color объекта skoda
  skoda.wheels = 4; // Присваиваем значение полю wheels объекта skoda
  skoda.speed = 315; // Присваиваем значение полю speed объекта skoda


  Auto audi; // Создаём объект структуры Auto с именем audi
  audi.wheels = 4;
  audi.speed = 323;
  audi.color = 'b';


  std::cout << "audi.speed = " << audi.speed << std::endl;
  std::cout << "skoda.speed = " << skoda.speed << std::endl;
  return 0;
}

Создаются два объекта структуры Auto: skoda и audi. Доступ к полям объекта осуществляется через оператор точки (.).

Преимущества использования структур

Использование структур:

  • Повышает читаемость и понятность кода за счёт группировки связанных переменных.
  • Позволяет создавать объекты, представляющие сложные сущности (например, автомобиль).
  • Упрощает работу с данными благодаря понятному синтаксису доступа к полям объекта.

Вложенные структуры

Структуры могут быть вложенными.

struct Date {
  int year;
};

struct Auto {
  int wheels;
  float speed;
  char color;
  Date creation;
};

int main() {
  Auto skoda;
  skoda.creation.year = 1999;
  std::cout << "skoda.creation.year = " << skoda.creation.year << std::endl;
  return 0;
}

Date вложена в Auto. Доступ к полю year структуры Date осуществляется через skoda.creation.year.

Домашнее задание

Создайте структуру Tree для описания дерева с полями: высота, ширина, имя и возраст. Создайте четыре объекта структуры Tree и выведите их характеристики на экран. Можно использовать вложенные структуры.

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

Что будем искать? Например,программа