[求助看一下可以吗
#include <iostream>
using namespace std;
class SuperVar
{
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::SuperVar(char ch)
{
vartype = character;
c = ch;
}
SuperVar::SuperVar(int ii)
{
vartype = integer;
i = ii;
}
SuperVar::SuperVar(float ff)
{
vartype = floating_point;
f = ff;
}
.....
书上这么说:尽管SuperVar现在来说是安全的,但是,他的用途却有点值得怀疑,因为使用union的首要目的是为了节省空间,而增加vartype占用
了union中很多与数据有关的空间(为什么说vartype占用了uinon的空间呢?),所以节省的空间就差不多就被抵消了。
xie xie