┌───────────────────────┐ t0000121
│ Пользовательские │
│ │
│ Т И П Ы Д А Н Н Ы Х │
└───────────────────────┘
Ранее мы рассматривали переменные только базовых типов. Но С++ озволяет программисту создавать свои личные типы данных. Причём эти типы могут быть как простыми, так и сложными, и представлять собой целые замкнутые программные продукты, позволяющие объединять данные и методы их обработки.
Подобный подход характерен для объектно-ориентрованного программирования, и мы будем подробно рассматривать его в дальнейшем.
Данный раздел будет посвящён начальному знакомству с простейшими видами пользовательских типов данных, это:
Структуры . . . . . . . . . . . . . . . . . . ‑t0000122‑
Битовые поля . . . . . . . . . . . . . . . . . ‑t0000133‑
Объединения . . . . . . . . . . . . . . . . . ‑t0000134‑
Перечисления . . . . . . . . . . . . . . . . . ‑t0000135‑
Создание псевдонимов типам . . . . . . . . . . ‑t0000136‑
Вот здесь можно испытать чувство законной гордости. Когда-то структуры представляли собой вершину языка С, рассматривались как одно из дополнительных средств языка, и их изучение являлось завершающим этапом.
Язык С++ поднялся на такой уровень, что не только структуры, а всё то, что мы изучим, базируясь на ВС3.1, будет являться фактически только началами C++.
Из старинного эпоса:
Девчушка вся из себя спрашивает академика:
"Скажите, а Вы чем занимаетесь?"
- Изучаю астрономию.
- Фи, а я её в десятом классе изучила!
В программировании это ещё более актуально:
Программистов столько, что, если кинешь кирпич в толпу, то попадёшь в программиста, - а программируют единицы.
Вывод:
Жизнь и С++ - процессы непрерывные! Прервался и ...
Правда, в С это не так заметно.
* * *
┌───────────────────────┐ t0000122
│ С Т Р У К Т У Р Ы │
└───────────────────────┘
Структура является производным типом данных, создаваемым программистом, с целью объединения в один именованный блок данных совокупности разнотипных и разноименных переменных, но характеризующих нечто общее.
Например, {"Таня", 90, 60, 90} - типичный пример структуры.
Следовательно, структура представляет собой сложный составной тип данных. Применение сложных типов данных значительно повышает структурированность программных кодов.
┌──────────────────────────────────────────────┐
│ Объединение разнотипных данных под одним именем получило название
СТРУКТУРЫ.
└──────────────────────────────────────────────┘
Структура - это именованная совокупность ОПИСАНИЯ переменных. Обратите внимание, что структура это ещё не переменная, а описание внутреннего содержания типа переменной, которая создаётся позднее.
Структура называется:
- составным типом данных;
- пользовательским типом данных;
- смешанным типом данных;
- описанием способа хранения данных;
- шаблоном для создания объектов структуры.
В основном для С++ создание пользовательских типов данных возможно двумя близкими по сути путями:
- через реализацию структур;
- через задание классов.
Классы мы рассмотрим в процессе изучения объектно-ориентированного программирования. Но на настоящее время граница между классами и структурами стёрта. Фактически и структура, и класс дают программисту одинаковые возможности. Но принято:
- в структуру объединять только данные, и не включать в неё методы их обработки;
- в класс включаются и данные, и методы обработки.
Это деление чисто условное, и никто не запретит вам использовать в структуре методы обработки данных, а в классе хранить только данные. Но так исторически сложилось.
Для работы с пользовательскими типами данных, заданных структурами следует выделить следующие основные моменты:
Определение структур . . . . . . . . . . . . . . ‑t0000123‑
Создание объектов . . . . . . . . . . . . . . . ‑t0000124‑
Доступ к членам структуры . . . . . . . . . . . . ‑t0000125‑
Массивы в структурах . . . . . . . . . . . . . . ‑t0000128‑
Вложенные структуры . . . . . . . . . . . . . . . ‑t0000129‑
Присваивание структур . . . . . . . . . . . . . . ‑t0000131‑
Инициализация полей структуры . . . . . . . . . . ‑t0000132‑
Можно было бы ещё развивать тему структур, но это не имеет большого смысла, т.к. структуры являются частным случаем классов, которые мы в своё время рассмотрим подробнейшим образом.
В качестве полигона для подготовки вашего восприятия идей обектно-ориентированного программирования структуры свою задачу выполнили.
И, господа, не надо пренебрежительно щурить зрение! Всё, что было сказано о структурах, полностью справедливо для классов.
Повторяясь там - будем помнить о тут !
Alles !
* * *
┌────────────────────────┐ t0000123
│ Определение структур │
└────────────────────────┘
Для создания нового типа данных необходимо описать внутреннее содежимое переменных создаваемого типа, т.е. выполнить определение структуры.
В общем виде определение структуры имеет вид:
│ struct Ярлык { │
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.