测试代码
#include<iostream>
#include<string>
using namespace std;
class examinfo
{
public:
examinfo(string a,char grade):name(a),mode(GRADE),grade(grade){}
examinfo(string a,bool pass):name(a),mode(PASS),pass(pass){}
examinfo(string a,int percent):name(a),mode(PERCENTAGE),percent(percent){}
void show()
{
cout<<name<<":";
switch(mode){
case GRADE:
cout<<grade;
break;
case PASS:
cout<<(pass?"pass":"fail");
break;
case PERCENTAGE:
cout<<percent;
break;
cout<<endl;
}
}
private:
string name;
enum{
GRADE,
PASS,
PERCENTAGE
}mode;
union {
char grade;
bool pass;
int percent;
};
};
int main()
{
examinfo a1("haihong",'hy');
a1.show();
return 0;
}
测试结果