Структура (программирование)

Структура (программирование)

Структура — конструкция большинства языков программирования, позволяющая содержать в себе набор переменных различных типов. В языках семейства 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;

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

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

  • Размещение: в области стека (классы — управляемая куча (heap)
  • Копирование: создаётся отдельная копия объекта, которая после копирования живёт «своей жизнью» (классы — создаётся ссылка на тот же класс (т. н. instance)
  • Наследование: не разрешается дополнение своими свойствами; от него нельзя наследовать (класс — позволяет, кроме случаев когда класс создавался с ключевым словом sealed, не разрешающим наследование)
  • Передача параметров: как локальные копии переменных (в классах — как ссылки)
  • Конструктор: да, кроме конструктора по умолчанию, который не требует параметров (в классах — да, без ограничений)
  • Освобождение переменной: при выходе за пределы видимости (в классах — во время процесса сборки мусора (garbage collector)


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

  • Члены структуры по умолчанию (без явного указания спецификатора доступа) являются публичными, а члены класса - закрытыми

Wikimedia Foundation. 2010.

Смотреть что такое "Структура (программирование)" в других словарях:

  • Программирование —         процесс составления упорядоченной последовательности действий (программы (См. Программа)) для ЭВМ; научная дисциплина, изучающая программы для ЭВМ и способы их составления, проверки и улучшения.          Каждая ЭВМ является автоматом,… …   Большая советская энциклопедия

  • ПРОГРАММИРОВАНИЕ ТЕОРЕТИЧЕСКОЕ — математическая дисциплина, изучающая математич. абстракции программ, трактуемых как объекты, выраженные на формальном языке, обладающие определенной информационной и логич. структурой и подлежащие исполнению на автоматич. устройствах. П. т.… …   Математическая энциклопедия

  • СТРУКТУРА ИССЛЕДОВАНИЯ: — деятельностная: мотивы – цели – задачи – содержание – формы – методы – критерии – результаты; управленческая: первичный анализ – прогнозирование – программирование – планирование – организация – регулирование – контроль – анализ – корригирование… …   Современный образовательный процесс: основные понятия и термины

  • Класс (программирование) — У этого термина существуют и другие значения, см. Класс. Класс в программировании набор методов и функций. Другие абстрактные типы данных  метаклассы, интерфейсы, структуры, перечисления  характеризуются какими то своими, другими… …   Википедия

  • Нейро-лингвистическое программирование — Нейролингвистическое программирование (НЛП) (англ. Neuro linguistic programming) (также встречается вариант «нейро лингвистическое программирование»)  комплекс моделей, техник и операционных принципов (контекстуально зависимых убеждений),… …   Википедия

  • Ретроспектива в программирование — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Реализация • Тестирование • …   Википедия

  • Структурное программирование — Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей …   Википедия

  • Неструктурированное программирование — Структурное программирование методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70 х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом. В …   Википедия

  • Нейролингвистическое программирование: Библиография — Одна из статей на тему Нейролингвистическое программирование (НЛП) Основные статьи НЛП · Принципы · НЛП психотерапия · История Новый код · НЛП и наука · Библиография · Словарь Принципы и методы Моделирование · Метамодель · Милтон модель Позиции… …   Википедия

  • Парадигма (программирование) — Парадигма программирования  это совокупность идей и понятий, определяющая стиль написания программ. Парадигма, в первую очередь, определяется базовой программной единицей и самим принципом достижения модульности программы. В качестве этой единицы …   Википедия

Книги

Другие книги по запросу «Структура (программирование)» >>


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.