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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 61, средняя оценка - 4.72
a91
 Аватар для a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
#1

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

28.10.2011, 12:52. Просмотров 8146. Ответов 6
Метки нет (Все метки)

Здравствуйте!

Вопрос в названии темы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
28.10.2011, 12:56     В чем отличия между union и struct? #2
В структуре элементы располагаются в памяти последовательно друг за другом
В объединении они наложены друг на друга как бутербродик =)
silent_1991
Эксперт С++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,025
Завершенные тесты: 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 секунды
Объединения могут употребляться в структурах и массивах и наоборот. Способ обращения к члену объединения в структуре (или к члену структуры в объединении) полностью идентичен обращению к элементу вложенной структуры. Объединение можно инициализировать только данными того типа, который имеет его первый элемент.
Убежденный
Системный программист
 Аватар для Убежденный
14657 / 6603 / 1045
Регистрация: 02.05.2013
Сообщений: 10,876
Завершенные тесты: 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?
Еще ссылки по теме:

Ошибка компиляции "must have class/struct/union" C++
C++ В чем отличия между std::cref() и std::bind()?
Не могу исправить error C2228: left of '.isWorked' must have class/struct/union C++
C++ Какие есть отличия между struct и class кроме модификаторов доступа по умолчанию?
C++ Количество памяти на union и struct

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

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

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