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 }
  • 相关阅读:
    oracle 10g 免安装客户端在windows下配置
    sql2005 sa密码
    使用windows live writer 有感
    windows xp SNMP安装包提取
    汉化groove2007
    迁移SQL server 2005 Reporting Services到SQL server 2008 Reporting Services全程截图操作指南
    foxmail 6在使用中的问题
    AGPM客户端连接不上服务器解决一例
    SpringSource Tool Suite add CloudFoundry service
    Java 之 SWing
  • 原文地址:https://www.cnblogs.com/invisible/p/2380940.html
Copyright © 2011-2022 走看看