c++ - C++ 'struct name' 中的结构未命名类型

标签 c++ struct

啊啊

class A {
  enum E {one , two , three};
  struct B {
      char a;
      E num;
  };

  static const B arr[];
}

A.cpp

const B A::arr[] = {
  {'1', one},
  {'2', two},
  {'3', three}
};

编译时出现如下错误: 'B' 没有命名类型

最佳答案

B 定义在A 的范围内,所以你需要通过它的全名来引用它:

const A::B A::arr[] = { ....

关于c++ - C++ 'struct name' 中的结构未命名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30933201/

相关文章:

c - 将结构数组作为参数输入 pthread_create 时出现问题

C:在结构元素上使用 Free() 时出现问题,行为奇怪

c++ - 如何定义转换运算符以允许内置运算符 += 用于添加两个类

c++ - 如何在C++中实现类组合?

c++ - 使用 Autoconf 处理已弃用的包含

c - GLib 哈希表未返回正确的值

c - 具有 union 和位域的结构的大小

c++ - 如何在 Linux(Ubuntu OS)中检测 C++ 应用程序的内存泄漏?

c++ - 直接从命令行使用 C++ 命令

c++ - 错误 : no matching member function for call to 'push_back'