Типы данных. Знакомствоу с простейшими видами пользовательских типов данных. Объединение разнотипных данных под одним именем

Страницы работы

Содержание работы

┌───────────────────────┐                    t0000121

│    Пользовательские   │

│                       │

│ Т И П Ы   Д А Н Н Ы Х │

└───────────────────────┘

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

Подобный подход характерен для объектно-ориентрованного программирования, и мы будем подробно рассматривать его в дальнейшем.

Данный раздел будет посвящён начальному знакомству с простейшими видами пользовательских типов данных, это:

Структуры  . . . . . . . . . . . . . . . . . . ‑t0000122‑

Битовые поля . . . . . . . . . . . . . . . . . ‑t0000133‑

Объединения  . . . . . . . . . . . . . . . . . ‑t0000134‑

Перечисления . . . . . . . . . . . . . . . . . ‑t0000135‑

Создание псевдонимов типам . . . . . . . . . . ‑t0000136‑

Вот здесь можно испытать чувство законной гордости. Когда-то структуры представляли собой вершину языка С, рассматривались как одно из дополнительных средств языка, и их изучение являлось завершающим этапом.

Язык С++ поднялся на такой уровень, что не только структуры, а всё то, что мы изучим, базируясь на ВС3.1, будет являться фактически только началами C++.

Из старинного эпоса:

Девчушка вся из себя спрашивает академика:

"Скажите, а Вы чем занимаетесь?"

- Изучаю астрономию.

- Фи, а я её в десятом классе изучила!

В программировании это ещё более актуально:

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

Вывод:

Жизнь и С++  -  процессы непрерывные!   Прервался и ...

Правда, в С это не так заметно.

*                *                *


┌───────────────────────┐                    t0000122

│   С Т Р У К Т У Р Ы   │

└───────────────────────┘

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

Например, {"Таня", 90, 60, 90} - типичный пример структуры.

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

┌──────────────────────────────────────────────┐

│ Объединение разнотипных данных под одним именем получило название

СТРУКТУРЫ.

└──────────────────────────────────────────────┘

Структура  - это именованная совокупность ОПИСАНИЯ переменных. Обратите внимание, что структура это ещё не переменная, а описание внутреннего содержания типа переменной, которая создаётся позднее.

Структура называется:

- составным типом данных;

- пользовательским типом данных;

- смешанным типом данных;

- описанием способа хранения данных;

- шаблоном для создания объектов структуры.

В основном для С++ создание пользовательских типов данных возможно двумя близкими по сути путями:

- через реализацию структур;

- через задание классов.

Классы мы рассмотрим в процессе изучения объектно-ориентированного программирования. Но на настоящее время граница между классами и структурами стёрта. Фактически и структура, и класс дают программисту одинаковые возможности.    Но принято:

- в структуру объединять только данные, и не включать в неё методы их обработки;

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

Это деление чисто условное, и никто не запретит вам использовать в структуре методы обработки данных, а в классе хранить только данные. Но так исторически сложилось.

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

Определение структур  . . . . . . . . . . . . . .           ‑t0000123‑

Создание объектов   . . . . . . . . . . . . . . .              ‑t0000124‑

Доступ к членам структуры . . . . . . . . . . . .       ‑t0000125‑

Массивы в структурах  . . . . . . . . . . . . . .           ‑t0000128‑

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

Присваивание структур . . . . . . . . . . . . . .          ‑t0000131‑

Инициализация полей структуры . . . . . . . . . . ‑t0000132‑

Можно было бы ещё развивать тему структур, но это не имеет большого смысла, т.к. структуры являются частным случаем классов, которые мы в своё время рассмотрим подробнейшим образом.

В качестве полигона для подготовки вашего восприятия идей обектно-ориентированного программирования структуры свою задачу выполнили.

И, господа, не надо пренебрежительно щурить зрение! Всё, что было сказано о структурах, полностью справедливо для классов.

Повторяясь там - будем помнить о тут !

Alles !

*               *               *

┌────────────────────────┐                    t0000123

│  Определение структур  │

└────────────────────────┘

Для создания нового типа данных необходимо описать внутреннее содежимое переменных создаваемого типа, т.е. выполнить определение структуры.

В общем виде определение структуры имеет вид:

│    struct Ярлык  {                  │

Похожие материалы

Информация о работе