[英]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.