首页 > 代码库 > 【ThinkingInC++】37、更安全的union可以封装在一个类中
【ThinkingInC++】37、更安全的union可以封装在一个类中
/** * 书本:【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; }
【ThinkingInC++】37、更安全的union可以封装在一个类中
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。