zoukankan      html  css  js  c++  java
  • union in cplusplus

    C++语言: Codee#25730
    01 #include <>iostream>
    02 using namespace std;
    03
    04 union U
    05 {
    06 private:
    07     int i;
    08     float f;
    09 public:
    10     U(int a);
    11     U(float b);
    12     ~U();
    13     int read_int();
    14     float read_float();
    15 };
    16
    17 U::U(int a)
    18 {
    19     i = a;
    20 }
    21
    22 U::U(float b)
    23 {
    24     f = b;
    25 }
    26
    27 U::~U()
    28 {
    29     cout << "U::~U()\n";
    30 }
    31
    32 int U::read_int()
    33 {
    34     return i;
    35 }
    36
    37 float U::read_float()
    38 {
    39     return f;
    40 }
    41
    42 int main()
    43 {
    44     U x(12), y(1.9f);
    45     cout << x.read_int() << endl;
    46     cout << x.read_float() << endl;            // just union in c with member functions
    47
    48     cout << end << y.read_float() << endl;
    49
    50     return 0;
    51 }
    C++语言: Codee#25731
    01 #include <iostream>
    02 using namespace std;
    03
    04 class SuperVar
    05 {
    06     enum
    07     {
    08         character,
    09         integer,
    10         floating_point
    11     } vartype;
    12     union
    13     {
    14         char c;
    15         int i;
    16         float f;
    17     };
    18 public:
    19     SuperVar(char ch);
    20     SuperVar(int ii);
    21     SuperVar(float ff);
    22     void print();
    23 };
    24
    25 SuperVar::SuperVar(char ch)
    26 {
    27     vartype = character;
    28     c = ch;
    29 }
    30
    31 SuperVar::SuperVar(int ii)
    32 {
    33     vartype = integer;
    34     i = ii;
    35 }
    36
    37 SuperVar::SuperVar(float ff)
    38 {
    39     vartype = floating_point;
    40     f = ff;
    41 }
    42
    43 void SuperVar::print()
    44 {
    45     switch(vartype)
    46     {
    47     case character:
    48         cout << "character: " << c << endl;
    49         break;
    50     case integer:
    51         cout << "integer: " << i << endl;
    52         break;
    53     case floating_point:
    54         cout << "float: " << f << endl;
    55         break;
    56     }
    57 }
    58
    59 int main()
    60 {
    61     SuperVar A('c'), B(12), C(1.44F);
    62     A.print();
    63     B.print();
    64     C.print();
    65
    66     return 0;
    67 }
  • 相关阅读:
    go---weichart个人对Golang中并发理解
    go语言值得学习的开源项目推荐
    mysql17---增量备份
    mysql16---读写分离
    mysql15--垂直分表水平分表
    mysql14---手动备份
    mysql13---索引使用注意
    mysql12----explain
    mysql11---主键普通全文索引
    OpenOffice的简单安装
  • 原文地址:https://www.cnblogs.com/invisible/p/2380940.html
Copyright © 2011-2022 走看看