可以在c ++中实例化匿名联合吗?

问题描述 投票:-3回答:1

我有这段代码:

class test {
  private:
  union {
    double x;
    std::vector<double> y;
  } amIValid;
};

我想知道联盟实例amIValid是否有效?

c++ c++11 unions
1个回答
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.

因此,标题中问题的答案是匿名联合无法实例化,因为实例化它意味着它不是匿名联合。

© www.soinside.com 2019 - 2024. All rights reserved.