Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ShPOR_OOP.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
261.06 Кб
Скачать

Отличия структур и объединений от классов

Структура -  это производный тип данных,  обычно представляющий собой определяемый пользователем набор именованных компонентов.

Объединение можно определить как структуру, все компоненты которой размещаются в памяти с одного и того же адреса. Таким образом, объединение в каждый момент времени содержит один из возможных вариантов значений. Для размещения объединения в памяти выделяется участок, достаточный для размещения члена объединения самого большого размера. Применение объединения также позволяет обращаться к одному и тому же полю памяти по разным именам и интерпретировать как значения разных типов.

Структуры (struct) и объединения (union) представляют собой частные случаи классов. Структуры отличаются от классов тем, что доступ к элементам, а также базовый класс при наследовании по умолчанию считаются public. Структуры предпочтительнее использовать для объектов, все элементы которых доступны.

Доступ в объединениях также устанавливается public, кроме того, в них вообще нельзя использовать спецификаторы доступа. Объединение не может участвовать в иерархии классов. Элементами объединения не могут быть объекты, содержащие конструкторы и деструкторы. Объединение может иметь конструктор и другие методы, только не статические. В анонимном объединении методы описывать нельзя.

В отличие от структур С++, объединения С++ не могут  использовать  спецификаторы  класса   доступа:public, private  и  protected.  Все  поля  объединения  имеют доступ private.

При создании Си++ стремились сохранить совместимость с языком Си. Большинство программ на Си будут исправно работать и с компилятором Си++. Си++ имеет синтаксис, основанный на синтаксисе Си.

Нововведениями Си++ в сравнении с Си являются: поддержка объектно-ориентированного программирования; поддержка обобщённого программирования через шаблоны; дополнительные типы данных; исключения; пространства имён; встраиваемые функции; перегрузка операторов; перегрузка имён функций; ссылки и операторы управления свободно распределяемой памятью; дополнения к стандартной библиотеке.

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

Объявление структур, объединений, перечислений

В С++ введен упрощенный синтаксис для определения переменных, типа структур, объединений и перечислений, в котором можно опускать ключевые слова struct, union, enum.

//C

enum day{sun,mon,tue,wen};

struct path{char str[30];

enum day Week;}

struct path Link;

//C++

enum day{sun,mon,tue,wen};

struct path{char str[30];

day Week;}

path List;

Допускается использовать неименованные перечисления и объявления, что тоже делает синтаксис более простым и логичным.

struct Goods{

char *name;

union{double d, long l, int i)};

};

Нововведениями Си++ в сравнении с Си являются: поддержка объектно-ориентированного программирования; поддержка обобщённого программирования через шаблоны; дополнительные типы данных; исключения; пространства имён; встраиваемые функции; перегрузка операторов; перегрузка имён функций; ссылки и операторы управления свободно распределяемой памятью; дополнения к стандартной библиотеке.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]