Структура (программирование) | это... Что такое Структура (программирование)? (original) (raw)

Структура — конструкция большинства языков программирования, позволяющая содержать в себе набор переменных различных типов. В языках семейства Pascal структуры традиционно называют записями (англ. record).

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

Содержание

Пример объявления структуры

Си

struct str_name { int member_1; float member_2; char member_3[256]; /* ... / }; // примеры инициализации структуры. struct str_name struct0; struct str_name struct1 = {1, 3.1416, "doit" / ... /}; struct str_name struct2 = {member_1:2, member_2:3.1416, member_3:"doit" / ... /}; struct str_name struct2 = {.member_1=2, .member_2=3.1416, .member_3="doit" / ... */};

C++

struct str_name { private: int member_1; float member_2; public: std::string member_3; // ... }; // примеры инициализации структуры. str_name struct0; str_name struct1 = {1, 3.1416, "doit" /* ... /}; str_name struct2 = {member_1:2, member_2:3.1416, member_3:"doit" / ... /}; str_name struct2 = {.member_1=2, .member_2=3.1416, .member_3="doit" / ... */};

C#

struct str_name { private int member_1; private float member_2; public string member_3; // ... };

Pascal

type str_name = record begin public: member_1 : integer; member_2 : extended; private: member_3 : string; { ... } end;

Отличия от классов

Отличия классов от структур в разных языках разнится. Отличия для языка С#:

Отличия для языка C++:

Просмотр этого шаблона Типы данных
Неинтерпретируемые БитНибблБайтТритТрайтСлово
Числовые ЦелыйС фиксированной запятойС плавающей запятой • Рациональный • КомплексныйДлинныйИнтервальный
Текстовые СимвольныйСтроковый
Указатель Адрес • Ссылка
Композитные Алгебраический тип данных (обобщённый) • МассивАссоциативный массивКлассСписокКортежОбъект • Option type • Product • СтруктураМножествоОбъединение (tagged)
Другие Логический • Низший тип • КоллекцияПеречисляемый типИсключение • First-class function • Opaque data type • Recursive data type • СемафорПотокВысший тип • Type class • Unit type • Void
Связанные темы Абстрактный тип данныхСтруктура данныхИнтерфейс • Kind (type theory) • Примитивный тип • Subtyping • Шаблоны C++ • Конструктор типа • Parametric polymorphism