Тема 3.4. Структуры

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

Схема описания структуры выглядит следующим образом:

struct <имя структуры>[: наследования] {
	<тип поля> <имя_поля1> :[кол-во бит];
	<тип поля> <имя_поля2> :[кол-во бит];
	...
	<тип поля> <имя_поляN> :[кол-во бит];
} <глобальные переменные>;

Определение структуры состоит из одного или двух шагов:

  • объявление структуры (задание нового типа данных, определенного пользователем); структура состоит из полей, например:
  • определения переменных типа структура:

При этом, как можно видеть из примера, приведенного в начале, переменные-структуры можно описать сразу же на первом шаге.

Для обращения к полям структуры нужно указать имя переменной, а затем через точку без пробела – имя поля

Structura.pole

Листинг 1. Пример консольного приложения, использующего структуры.

Структуры можно инициализировать при описании также, как и массивы:

Битовые карты

Структуры с полями, каждое из которых занимает 1 бит называются битовыми картами. Ниже приведена структура с одим полем, которое может хранить лишь один бит.

Точно таким же образом можно создать структуру, которая будет хранить байт побитно:

Обратите внимание, что биты идут в обратно порядке, потому что числа записываются слева направо.