Введение в программирование

       

Объединения


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

Использование объединений значительно экономит память, выделяемую под объекты.

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

Так, компилятор Visual C++ выделит 4 байта под следующее объединение:

union unionA { char ch1; float f1;} a1;

Элементы объединенияКоличество занимаемых байтов
char ch1
1
float f1
1234

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

Инициализировать объединение при его объявлении можно только заданием значения первого элемента объединения.

Например:

union unionA { char ch1; float f1;} a1={ 'M' };

Доступ к элементам объединения, аналогично доступу к элементам структур, выполняется с помощью операторов . и ->.

Например:

union TypeNum { int i; long l; float f; }; union TypeNum vNum = { 1 }; // Инициализация первого элемента объединения i = 1 cout<< vNum.i; vNum.f = 4.13; cout<< vNum.f;

Элементы объединения не могут иметь модификаторов доступа и всегда реализуются как общедоступные (public).



Содержание раздела