zoukankan      html  css  js  c++  java
  • c++ anonymous union,struct -- 匿名联合体和机构体

    c++ anonymous union,struct -- 匿名联合体和机构体

    结构体和联合体各自的基本用法不赘述,仅说一下他们匿名时访问的情况。如果是token不同,可以直接跨层访问。例子

    1. #include <iostream>
    2. using namespace std;
    3. struct zoo_obj{
    4.         string name;
    5.         union {
    6.                 unsigned int property;
    7.                 struct{ //plant
    8.                         unsigned int
    9.                                 hasLeaf:1,
    10.                                 hasFlower:1,
    11.                                 hasTrunk:1,
    12.                                 hasRattan:1;
    13.                 };
    14.                 struct { //animal
    15.                         unsigned int
    16.                                 isBackbone:1,
    17.                                 isOvipara:1,
    18.                                 hasLags:1,
    19.                                 hasWing:1;
    20.                 };
    21.         };
    22. };
    23. int main(void)
    24. {
    25.         zoo_obj peony = {"peony",0};
    26.         zoo_obj dog = {name:"dog",0};
    27.         dog.hasLags = true;
    28.         /* zoo_obj dog = {name:"dog",property:0};
    29.          * sorry, unimplemented: non-trivial designated initializers
    30.          * not supported
    31.          */
    32.         cout << peony.name << " hasLeaf " << peony.hasLeaf << endl;
    33.         cout << dog.name << " hasLags " << dog.hasLags << endl;
    34. }
    输出
    1. peony hasLeaf 0
    2. dog hasLags 1
    不支持像列子中name样的指定访问。如果指定了会报错
    1. sorry, unimplemented: non-trivial designated initializers not supported
     
     
  • 相关阅读:
    一些$LCT$的瓜皮题目
    写点东西(关于背包问题)
    字符串算法总结
    常系数齐次线性递推
    原根算法与剩余定理
    问题集
    常用链接
    回形针PaperClip
    6.824拾遗
    杂项
  • 原文地址:https://www.cnblogs.com/timssd/p/4781109.html
Copyright © 2011-2022 走看看