访问类内联合中的变量

gol*_*ean 4 c++ class

很抱歉在 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.

Mic*_*eyn 5

您只是在类的范围内定义联合,而不是实际创建其类型的成员变量。因此,将您的代码更改为:

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)