Еще одним типом переменной, который мы будем рассматривать, является struct (сокращение от слова structure — "структура"). Структурывполне соответствуют своему названию: это структуры данных, которые составлены из информации различного характера, возможно, из данных различных типов. Они позволяют программистам описывать свои собственные типы переменных, для которых данная структура является базовой. В качестве примера предположим, что нам необходимо хранить информацию о маршруте из одной точки в другую, включающую направление и расстояние в милях. Для простоты в качестве направления будет использоваться только одна из четырех сторон света (так что для описания направления вполне подойдет перечислимый тип orientation), а длина маршрута будет представлена типом double. В этом случае мы могли бы использовать две разные переменные, написав уже знакомый нам код:
orientation myDirection;
double myDistance;
В таком подходе с использованием двух переменных нет ничего плохого, однако намного удобней (особенно если маршрутов много) хранить всю эту информацию в одном месте.
Для описания структур используется ключевое слово struct:
struct <имяТипа>
{
<объявлениеЧлена>
}
В разделе <объявлениеЧлена> содержатся объявления переменных (они называются полями) практически в обычном формате. Объявление каждого члена имеет следующий вид:
<доступ> <тил> <имя>;
Для того чтобы код, обращающийся к структуре, имел доступ к ее полям, в разделе <доступ> следует использовать ключевое слово public (общий). Например:
{
public orientation direction ;
public double distance;
}
После того как мы описали структуру, мы можем использовать ее для описания переменных соответствующего типа:
route myRoute;
Для получения доступа к отдельным полям этой составной переменной следует использовать точку:
myRoute.direction = orientation.north;
myRoute.distance = 2.5;
Давайте рассмотрим использование этого типа на примере.