繁体   English   中英

从对象访问结构枚举

[英]Access struct enum from object

我只是在学习使用c ++,并且试图了解作用域如何与类和嵌入式枚举一起使用。

目前,我有一堂课,看起来像这样:

class Foo {
public:
    Foo();

    enum Option = {
        FIRST,
        SECOND,
        THIRD
    };

    struct Example = {
        const char* name;

        Option key;

        enum keyOption = {
            PROPERTY,
            FLAG
        } keyValue;
    };
};

然后在主函数中将其初始化,然后将一些值添加到Example结构

int main()
{
    Foo *test;

    Foo::Example content = {
        "Hello World",
        test->FIRST,
        test->Example::PROPERTY
    };
}

使用上面的代码,我将得到以下错误:

错误:“ Foo :: keyOption”不是“ Foo”的基础

我知道我可以通过将test->Example::PROPERTY更改为Foo::Example::PROPERTY来修复它

但是有没有一种方法可以通过对象而不是Foo::访问Example结构值? 类似于我如何访问FIRST值?

原谅我,如果我只是在区别概念的命名,我只是想通过构建一些东西来自学,我将需要尽快阅读更多细节。

非常感谢您的帮助,非常感谢!

Foo :: FIRST和Foo :: Example :: PROPERTY是枚举器的可能值。 仅Example :: key和Example :: keyValue是可实例化并初始化为Foo :: FIRST和Foo :: Example :: PROPERTY的结构的成员

这应该工作

Foo::Example content = {
    "Hello World",
    test->FIRST,
    Foo::Example::PROPERTY
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM