Форум программистов, компьютерный форум CyberForum.ru

В чем отличия между union и struct? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 61, средняя оценка - 4.72
a91
 Аватар для a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
28.10.2011, 12:52     В чем отличия между union и struct? #1
Здравствуйте!

Вопрос в названии темы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 12:52     В чем отличия между union и struct?
Посмотрите здесь:

error C2228: left of '.add' must have class/struct/union type. в чем ошибка? C++
std::bind1st: is not a class, struct, or union type C++
В чем отличия между выражением (expression) и оперетором (statement)? C++
Union, struct C++
C++ Union внутри struct
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
28.10.2011, 12:56     В чем отличия между union и struct? #2
В структуре элементы располагаются в памяти последовательно друг за другом
В объединении они наложены друг на друга как бутербродик =)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
28.10.2011, 13:05     В чем отличия между union и struct? #3
Дополню, что из вышесказанного следует, что структура способна хранить все свои элементы одновременно, а объединение в один момент времени может интерпретироваться только как один из своих элементов.
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
28.10.2011, 13:36     В чем отличия между union и struct? #4
Цитата Сообщение от a91 Посмотреть сообщение
Здравствуйте!

Вопрос в названии темы
А я даже пример напишу

C++
1
2
3
4
5
6
7
union _union
{
    unsigned long uL;
    unsigned char uC[4];
} uni;
 
uni.uL = 0x000FFFF0;
Если расположение байт Little endian (младший адрес содержит младший байт), то в uni.uC[0] будет находится число 0xF0, uni.uC[1] - 0xFF и т.д.

Очень удобно использовать при работе с каким-нить типом, например, long (4 байта), по-байтно (если боишься указателей) или, если программируешь на Си, память ограничена, то можно использовать union как временную структуру для разных переменных.
DRUNY195
2 / 2 / 0
Регистрация: 04.04.2013
Сообщений: 247
12.06.2013, 12:03     В чем отличия между union и struct? #5
В структуре элементы располагаются в памяти последовательно друг за другом
В объединение позволяет хранить различные типы данных в одном и том пространстве памяти (но не одновременно)

Добавлено через 38 секунд
Объединения образуются во многом подобно структурам

Добавлено через 22 секунды
Объединение может хранить значение типа int, или double, или char. Структура с такими же полями способна хранить все типы одновременно

Добавлено через 42 секунды
Объединения могут употребляться в структурах и массивах и наоборот. Способ обращения к члену объединения в структуре (или к члену структуры в объединении) полностью идентичен обращению к элементу вложенной структуры. Объединение можно инициализировать только данными того типа, который имеет его первый элемент.
Убежденный
Системный программист
 Аватар для Убежденный
14214 / 6229 / 988
Регистрация: 02.05.2013
Сообщений: 10,390
Завершенные тесты: 1
12.06.2013, 12:20     В чем отличия между union и struct? #6
Добавлю ко всему написанному.

union не может содержать виртуальные методы.
union не может наследоваться или быть наследуемым.
union не должен иметь статических членов данных или членов данных ссылочного типа.
Класс с нетривиальным конструктором, конструктором копирования, деструктором
или оператором присваивания не может быть членом union (только в C++98/2003).

Стандарт, "9.5 Unions".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2013, 12:30     В чем отличия между union и struct?
Еще ссылки по теме:

При компиляции ошибка: C2228: left of ".real",".imag" must have struct/class/union C++
Чем struct отличается от class? C++
Ошибка компиляции "must have class/struct/union" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
12.06.2013, 12:30     В чем отличия между union и struct? #7
а я добавлю ссылку - тоже совсем недавно очень подробно разбирали.
Смысл обьединений
Yandex
Объявления
12.06.2013, 12:30     В чем отличия между union и struct?
Ответ Создать тему
Опции темы

Текущее время: 13:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru