C++如何使用其中也包含此类的类中的枚举

标签 c++ templates enums constants forward-declaration

我有以下问题:

class Bar
{
    std::array<int, Foo::Baz::LEN> array;
};

class Foo
{
    Bar bar;
public:
    enum class Baz
    {
        VAL_1 = 0, VAL_2, LEN
    };
}

有没有办法将枚举类的声明与 Foo 分开,同时将其保留在 class Foo 的命名空间中?

最佳答案

你不能那样做。

您需要将 enum 的定义移到 Bar 的定义之前,或者将其定义在 Bar 中。

关于C++如何使用其中也包含此类的类中的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37893254/

相关文章:

mysql - 使用 BIT 值将多列合并为一列

c++ - "Manual"签名重载解析

c++ - 强制为模板参数类实现函数?

objective-c - 升级到 Xcode 7.3 swift 2.2 后,从 swift 调用 obj-c 枚举不起作用

c++ - 在这种情况下,有人可以解释 "reference"和 "pointer"之间的区别吗?

c++ - 扩展 QString 以重载构造

python - 如何在 C++ 中正确加载 python(3.0) 函数

c++ - 抛出 'std::string' 实例后调用终止

c++ - 模板特化和普通的旧功能

c# - 使用枚举在检查器中隐藏/显示变量