09-08-2023
Структура — конструкция большинства языков программирования, позволяющая содержать в себе набор переменных различных типов. В языках семейства 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" /* ... */};
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" /* ... */};
struct str_name { private int member_1; private float member_2; public string member_3; // ... };
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 |
Связанные темы |
Запись (тип данных).