Структуры в 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++.