2016-04-23 77 views
0

以下代码来自C代码,您可以直接使用裸字B1 B2 B3。 但是在C++中它不允许使用正确的命名空间,我怎么能以C++的方式使用B1 B2 B3然后(B1 B2 B3的正确命名空间是什么)?如何访问C++中的枚举

struct A { 
    int X; 
    union { 
     struct B { 
      enum { B1, B2, B3 } ABCD; 
     }v2; 
    } v; 
}; 

回答

1

您可以进行结构的实例并访问成员:

A a; 
cout << a.v.v2.B1 << a.v.v2.B2 << a.v.v2.B3 << '\n'; 
+0

你的意思是我可以做如下:a.v.v2.ABCD = a.v.v2.B1? 看起来有点奇怪,但方向正确吗? – Boying