我在看《C++精髓》时,觉得联合和枚举的说明不够明确,我一直看不懂
因为我不知道它们是干吗的。确实是很菜的问题,但请帮帮我。

解决方案 »

  1.   

    联合,就是共享内存,
    class cell{
     public:
          union 
              {
                char   c[10];
                int    i;
       int    j;
          };
     };定义一个cell a.
    如果a.i=10 那么:a.j=10,a.c[0]=10,
    ....
    枚举
    enum Days               // Declare enum type Days
    {
       saturday,            // saturday = 0 by default
       sunday = 0,          // sunday = 0 as well
       monday,              // monday = 1
       tuesday,             // tuesday = 2
       wednesday,           // etc.
       thursday,
       friday
    } today;                // Variable today has type Days相当于:
    #define  saturday 0
    #define  sunday 0
    #define  monday 1
    ........
    #define  friday 5
      

  2.   

    enum Days               // Declare enum type Days
    {
       saturday,            // saturday = 0 by default
       sunday = 0,          // sunday = 0 as well
       monday,              // monday = 1
       tuesday,             // tuesday = 2
       wednesday,           // etc.
       thursday,
       friday
    } today;                // Variable today has type Days相当于:
    #define  saturday 0
    #define  sunday 0
    #define  monday 1
    ....
    #define  friday 5联合就是内存共享
    class cell{
     public:
          union 
              {
                char   c[10];
                int    i;
       int    j;
          };
     };
    cell a;
    如果a.i=10,那么:a.j=10,a.c[0]=10,a.c[1]=0,a.c[2]=0,a.c[3]=0;
    如果a.i=256,那么:a.j=256,a.c[0]=0,a.c[1]=1,a.c[2]=0,a.c[3]=0;