我有这段代码:
class test {
private:
union {
double x;
std::vector<double> y;
} amIValid;
};
我想知道联盟实例amIValid
是否有效?
可以在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.
因此,标题中问题的答案是匿名联合无法实例化,因为实例化它意味着它不是匿名联合。