Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Определение шаблона структуры и структурной переменнойСодержание книги
Поиск на нашем сайте Структура (структурный тип, шаблон структуры) – это тип, определяемый пользователем с использованием ключевого слова struct для объединения в единое целое, имеющее имя, множества поименованных элементов (полей данных), в общем случае, разных типов. Определение структуры ( структурного типа, шаблона структуры) задает внутреннюю организацию структурных переменных после их определения и никак не связано с резервированием памяти компилятором, не создает никаких переменных. Структурный тип только задает правила формирования структурной переменной, используемые компилятором при последующем определении структурной переменной для выделения ей места в памяти и организации доступа к ее полям. Структурный тип имеет уникальное имя в пределах области определения. Имя структурного типа используется при определении структурных переменных аналогично встроенным типам.
Синтаксис определения структуры (структурного типа, шаблона структуры): struct pattern_name { type1 field_name1; }; или, в случае полей одного типа: struct pattern_name { type1 field_name1, field_name2; }; где:
Элементом структуры в С++ может быть и функция.
Примеры определений структурного типа: //1 struct PointRecType // структурный тип «точка» { int x, y; };
!!! Для определения точки можно использовать предопределенную в заголовочном файле windows.h структуру POINT, соответствующую структуре PointRecType.
//2 struct ColorPointRecType // структурный тип «цветная точка» { int x, y; unsigned color; }; //3 struct Book // структурный тип «книга» { char name [20]; char title[44]; int year; float price; }; //4 struct Auto // структурный тип «автомобиль» { char fio[40]; //ФИО владельца char adres[60]; //адрес владельца int nomer; //номер авто char marka[20]; //марка авто }; //5 struct Student // структурный тип «студент» { unsigned short gruppa; char fio[20]; unsigned short ocenki[KOL_OC]; //массив оценок на экзамене }; //6 struct Rectangle // структурный тип «прямоугольник» { int left; //пара координат верхней левой точки int top; int right; //пара координат нижней правой точки int bottom; }; !!! Для определения прямоугольных областей можно использовать предопределенную в заголовочном файле windows.h структуру RECT, соответствующую приведенной структуре Rectangle: //7 struct Box // структурный тип «ящик» { double length; //длина double width; //ширина double heigth; //высота }; Определение структурной переменной состоит из двух шагов: · определение структурного типа (шаблона структуры, структуры); · собственно определение структурной переменной
Определение структурных переменных s1 и s2 для приведенной выше структуры Student выглядит следующим образом: Student s 1, s2; //ключевое слово struct опускается
Синтаксис С++ разрешает совмещать определение структурного типа и определение структурных переменных. Например:
char title[44]; int year; float price; определение структурных переменных } first_book, child_book, dog_book [4], *ptr_book;
Определение структурного типа может быть анонимным. В этом случае сразу следует определять структурные переменные. Например:
struct { // анонимный структурный тип int pole1; double pole2; char *pole3; } a, b, * pb=&b, * pc, & refa=a, & refb(b); //
Как мы видим, значением указателя на структуру может быть адрес структуры того же типа, т.е. адрес байта, начиная с которого структура размещается в памяти. Структурный тип задает ее размеры и тем самым определяет, на какую величину (на сколько байтов) изменится значение указателя на структуру, если к нему прибавить (или вычесть) 1. Структурный тип может быть операндом операции new: ptr_book = new Book; //выделяется память для структуры типа Book и Для структур могут быть определены и ссылки. Выше в примере показаны разные способы инициализации ссылок refa и refb.
|
|||||||||
|
Последнее изменение этой страницы: 2021-12-15; просмотров: 87; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.15 (0.007 с.) |