C++高手看一下这道题 错在哪

来源:百度知道 编辑:UC知道 时间:2024/06/08 10:08:10
#include<iostream.h>
class CU
{
enum {INT,FLOAT}type;
union value{
int ivalue;
float fvalue;
};
public:
CU(int x):type(INT){ivalue=x;}
CU(float y):type(FLOAT){fvalue=y;}
void print()
{
if(type==INT)
cout<<ivalue;
else cout<<fvalue;
}};
void main()
{
CU fCU((float)5.6);
CU iCU(8);
fCU.print();
cout<<endl;
iCU.print();
}

#include<iostream>
using namespace std;
class CU
{private:
enum {INT ,FLOAT}type;
union value{
int ivalue;
float fvalue;} va;

public:
CU(int x):type(INT){va.ivalue=x;}
CU(float y):type(FLOAT){va.fvalue=y;}
void print()
{
if(type==INT)
cout<<va.ivalue;
else cout<<va.fvalue;
}};
int main()
{
CU fCU((float)5.6);
CU iCU(8);
fCU.print();
cout<<endl;
iCU.print();
system("pause");
return 0;
}
联合体定义一个对象

变量fvalue和ivalue未定义!

你只定义了共同体类型value,
没有创建出实例对象。。。

上一个的回答写出来了