我有这段代码:
class test {
private:
union {
double x;
std::vector<double> y;
} amIValid;
};
我想知道联合实例amIValid
是否有效?
答案 0 :(得分:2)
可以在C ++中实例化未命名的联合:
union { int i; double d; } my_thing;
my_thing.i = 3;
// etc.
匿名联盟是一个名为not instantiated (scroll down)的未命名联盟。您可以直接访问其成员:
union { int i; double d; };
i = 3;
// etc.
因此标题中问题的答案是匿名联合不能被实例化,因为实例化它意味着它不是匿名联盟。