Бьерн Страуструп - Абстракция данных в языке С++ - Структуры и объединения

ОГЛАВЛЕНИЕ

 

        Структуры и объединения

      Конструкции С 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";