很抱歉在 C++ 中提出了幼稚的问题。对于下面的代码,有一个类,其中有一个具有两个变量的联合声明。如何使用下面代码中的类对象访问联合中的变量:
class my
{
public:
//class member functions, and oeprator overloaded functions
public:
union uif
{
unsigned int i;
float f;
};
private:
//some class specific variables.
};
Run Code Online (Sandbox Code Playgroud)
如果有一个我定义的类型的对象
my v1;
Run Code Online (Sandbox Code Playgroud)
在稍后的函数中
使用 v1 如何访问 float f; 在代码上面的联合内部?
我还想在调试器(VS-2010)的观察窗口中观察这个浮点 f 的值,怎么做?
我试过 v1.uif.f ,这在监视窗口中给出了错误:Error oeprator requires class struct or union。
v1.
您只是在类的范围内定义联合,而不是实际创建其类型的成员变量。因此,将您的代码更改为:
class my
{
public:
//class member functions, and oeprator (sic) overloaded functions
public:
union uif
{
unsigned int i;
float f;
} value;
private:
//some class specific variables.
};
Run Code Online (Sandbox Code Playgroud)
现在您可以在您的联合成员中设置成员变量,如下所示:
my m;
m.value.i=57;
// ...
m.value.f=123.45f;
Run Code Online (Sandbox Code Playgroud)