zoukankan      html  css  js  c++  java
  • cppreference系列> C++ language> Types> Union

    union

    • 特殊的类类型,一次只能持有它的一个非static数据成员
    • 可以有成员函数,但是没有虚函数
    • 没有基类,也不能作为基类
    • 不能有引用类型的数据成员
    • 默认访问级别为public
    • 大小为最大数据成员的大小

    匿名union

    int main()
    {
        union { int a; const char* p; };
        a = 1;
        p = "Jennifer";
    }

    union-like class

    #include <iostream>
    // S has one non-static data member (tag), three enumerator members, 
    // and three variant members (c, n, d)
    struct S
    {
        enum {CHAR, INT, DOUBLE} tag;
        union {
            char c;
            int n;
            double d;
        };
    };
     
    void print_s(const S& s)
    {
        switch(s.tag)
        {
            case S::CHAR: std::cout << s.c << '\n'; break;
            case S::INT: std::cout << s.n << '\n'; break;
            case S::DOUBLE: std::cout << s.d << '\n'; break;
        }
    }
    int main()
    {
        S s = {S::CHAR, 'a'};
        print_s(s);
        s.tag = S::INT; s.n = 123;
        print_s(s);
    }
  • 相关阅读:
    stm32 usart 串口
    stm32 usart 串口
    stm32 PWM
    stm32 PWM
    stm32 定时器 通用定时器
    stm32 定时器 通用定时器
    stm32 外部中断
    linux+jre+apache+mysql+tomcat调优
    Cent OS服务器配置(JDK+Tomcat+MySQL)
    linux---文本编辑vi
  • 原文地址:https://www.cnblogs.com/chenkkkabc/p/3032624.html
Copyright © 2011-2022 走看看