c++ - 无法从外部访问父类枚举

标签 c++ class enums

我想访问我的类的枚举,它继承自它的基类,但它给出了错误。

说我必须使用 Base::One,而不是 Extended::One

但是其他人不知道Base类,他们只知道我和他们一起发布的Extended类。

如何使用 Extended::One 访问所有基类的枚举?

class Base {
    public:
    enum Type {
        One,
        Two
    };
};

class Extended : Base {

};

int main() {
    Extended::One; // ERROR: constant Base::One is inaccessible

    return 0;
}

最佳答案

您不小心使用了 private inheritance .要解决此问题,请按如下方式定义 Extended:

class Extended : public Base {

};

关于c++ - 无法从外部访问父类枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58066192/

相关文章:

java - Jackson 枚举序列化和反序列化

c++ - 模板类的嵌套类,模板类的静态成员变量

c++ - 递归斐波那契的复杂性和步骤数

iphone - Objective-C class_conformsToProtocol() 错误?

c++ - 如果未定义析构函数,为什么不进行返回值优化?

c++ - 为什么派生类不能访问非虚拟基类函数?

java - 如何管理多个冗长的字符串常量?

c++ - 枚举,命名空间和命名空间之外的声明导致 "call of overloaded (...) is ambiguous"

c++ - 如何读取文件或流直到找到字符串

c++ - 通过 id 并返回名称在 vector 中搜索结构元素