Бьерн Страуструп - Абстракция данных в языке С++ - Структуры и объединения
ОГЛАВЛЕНИЕ
Страница 16 из 25
Структуры и объединения
Конструкции С s t r u c t и u n i o n допустимы, но они
переросли в классы. Структура есть класс, все члены которого
являются публичными, таким образом
struct s ( ... );
эквивалентно
class s { hublic5 ... };
Объединение есть структура, которая может содержать ровно одно
значение в каждый момент времени.
Эти определения означают, что структура или объединение
могут иметьв качестве своих членов составляющие функции.
В частности, они могут быть конструкторами. Например:
union uu {
int i;
char *p;
uu(int ii) { i = ii; }
uu(char *pp) { p = pp; }
};
Это снимает большинство проблем, касающихся инициализации
объединений. Например:
uu u1 = 1;
uu u2 = "asdf";