【ThinkingInC++】37、更安全的union可以封装在一个类中
来源:互联网 发布:几何刚度矩阵 编辑:程序博客网 时间:2024/06/12 00:13
/*** 书本:【ThinkingInC++】* 功能:更安全的union可以封装在一个类中* 时间:2014年9月6日14:53:04* 作者:cutter_point*/#include<iostream>using namespace std;class SuperVar{ //enum没有类型名(他是一个没有加标记的枚举),如果想立即定义enum的实例时, //这种做法是可取的 enum {character, integer, floating_point}vartype; union { char c; int i; float f; };public: SuperVar(char ch); SuperVar(int ii); SuperVar(float ff); //重载 void print();};/*SuperVar(char ch);SuperVar(int ii);SuperVar(float ff); //重载void print();*///SuperVar(char ch);SuperVar::SuperVar(char ch){ vartype=character; c=ch;}//SuperVar(int ii);SuperVar::SuperVar(int ii){ vartype=integer; i=ii;}//SuperVar(float ff); //重载SuperVar::SuperVar(float ff){ vartype=floating_point; f=ff;}//void print();void SuperVar::print(){ switch(vartype) { case character: cout<<"character: "<<c<<endl; break; case integer: cout<<"integer: "<<i<<endl; break; case floating_point: cout<<"float: "<<f<<endl; break; }}int main(){ SuperVar A('c'), B(12), C(1.44f); A.print(); B.print(); C.print(); return 0;}
0 0
- 【ThinkingInC++】37、更安全的union可以封装在一个类中
- 【ThinkingInC++】37、更安全的union可以封装在一个类中
- 【ThinkingInC++】43、内建类型封装在一个类里
- 【ThinkingInC++】46、特定的数据成员可以在一个const对象里被改变
- 策略模式用于封装系列的算法,这些算法通常被封装在一个被称为 Context 类中,客户端程序可以自由选择其中一种算法
- 【ThinkingInC++】32、一个句柄类
- ImageLoader 第一步全局变量 封装一个类 在清单列表中注册才可以首次登陆
- [Java 09 多线程] 线程是指一个进程在执行过程中可以产生更小的程序单元
- 【ThinkingInC++】62、类中指针
- 示例:在项目中写一个FMDB 的封装类
- 在Java中做一个线程安全的类
- 【ThinkingInC++】23、一个袖珍的C库
- Android 简单的封装,可以更高效——AsyncTask
- Android 简单的封装,可以更高效——AsyncTask
- thinkphp(tp)框架封装一个自己写的方法到类里面.可以在其他控制器里面调用
- 一个可以重用的线程安全生产者消费者队列类
- Android中更安全的使用AsyncTask
- 一个线程安全的std::map封装
- deflate与gzip
- 求一个整数的二进制中1的个数
- 10_二进制中1的个数
- 【ThinkingInC++】36、联合体
- 堆函数
- 【ThinkingInC++】37、更安全的union可以封装在一个类中
- 如何删除鼠标右键菜单里的打开按钮
- Camel查找组件方式
- 存储过程语法及实例
- [Android]四种方式解析字符串----JSON、SAX、DOM、XML
- Android 应用程序消息处理机制(Looper、Handler)分析
- 【ThinkingInC++】38、选择重载还是默认参数
- 联嵌科技资料:物联网技术之智能嵌入技术
- (白书训练计划)UVa 12627 Erratic Expansion(递归+找规律)