可以在 C++ 中实例化匿名联合吗?
Can an anonymous union be instantiated in c++?
我有这段代码:
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.
所以标题中问题的答案是匿名联合是不能实例化的,因为实例化了就代表它不是匿名联合
我有这段代码:
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.
所以标题中问题的答案是匿名联合是不能实例化的,因为实例化了就代表它不是匿名联合