std :: array无法访问在类中声明的私有结构,但是vector可以

时间:2019-05-31 16:00:20

标签: c++

对于为什么会出现此错误,我有些困惑。我有以下情况

namespace Foo
{
  class A
  {
    struct B
    {
      C c;
    }

    std::array<B, 10> bList;
  }
}

C是在DLL中在同一namespace Foo下项目的某个位置声明的类。如果我尝试对此进行编译,VS会告诉我 B: cannot access private struct declared in class A指的是std::array。但是,如果我将std::array<B, 10> bList;更改为原始数组B bList[10]std::vector<B> bList;,或者如果我将struct B移到class A之外,它将编译而没有任何错误。

我在这里想念什么?谢谢!

0 个答案:

没有答案