|
||||
|
8.5.13 Объединения Объединение можно считать структурой, все объекты члены которой начинаются со смещения 0, и размер которой достаточен для содержания любого из ее объектов членов. В каждый момент времени в объединеии может храниться не больше одного из обектов членов. Объединение может иметь функции члены (включая конструкторы и деструкторы). Из объединения невозможно вывети класс. Объект класса с конструктором или деструктором не может быть членом объединения. Объединение вида union (* список_членов *); называется безымянным объединением; оно определяет неменованный объект. Имена членов безымянного объединения долны отличаться от других имен в области видимости, в которой объединение описано; в этой области видимости они могут ипользоваться непосредственно, без обычного синтаксиса доступа к членам (#8.5). Например: union (* int a; char* p; *); a = 1; // ... p = «asdf»; Здесь a и p используются как простые переменные (не-члны), но так как они являются членами объединения, они имеют один и тот же адрес. |
|
||