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
     
     
  • 相关阅读:
    R语言从基础入门到高级
    Web前端工程师职业学习路线图,分享!
    IOS中nil/Nil/NULL的区别
    Core Animation系列之CADisplayLink
    CADisplayLink 及定时器的使用
    iOS定时器NSTimer的使用方法
    IOS中定时器NSTimer的开启与关闭
    【IOS基础知识】NSTimer定时器使用
    IOS 实现自定义的导航栏背景以及自定义颜色的状态栏(支持7.0以及低版本)
    iOS7中计算UILabel中字符串的高度
  • 原文地址:https://www.cnblogs.com/timssd/p/4781109.html
Copyright © 2011-2022 走看看