从对象访问结构枚举
Access struct enum from object
我只是在学习使用c ++,我正在尝试了解scope如何与类和嵌入式枚举一起工作。
目前我有一个看起来像这样的类:
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::P ROPERTY 是枚举器的可能值。只有 example::key 和 example::keyValue 是结构的成员,可以实例化并初始化为 Foo::FIRST 和 Foo::Example::P ROPERTY
这
应该有效
Foo::Example content = {
"Hello World",
test->FIRST,
Foo::Example::PROPERTY
};
相关文章:
- 访问在 C++ 结构中声明的枚举变量
- 带有枚举方向/类型的气泡排序结构数组
- 从 cin 获取 c++ 中结构中多个枚举的输入
- 在结构中使用枚举的值
- 创建结构作为枚举类成员
- 在 C++ 中使用枚举而不是结构进行标记调度
- 为什么要在结构中放置枚举,然后使用 typedef 名称?
- std::映射键作为模板化结构与枚举成员
- 与常规枚举相比,c++ 枚举结构的大小更大吗?
- 枚举范围无法通过 C++ 中的类中的结构访问
- 如何编写一个错误结构,该结构可以包含不同的强键枚举作为错误代码
- 用枚举场和STL容器解析结构,并使用增强精神/融合轻松
- 在容器内过度对齐的结构和枚举之间的C 差异
- 当枚举器列表项的标识符已是结构的成员时,如何使用枚举器列表项
- 从匿名结构访问枚举条目
- 模板结构结合枚举
- 模板结构的多个声明,用于获取枚举,描述模板类型
- 如何定义别名以通过结构访问枚举类成员
- 在c++中创建字符串的枚举/结构体
- 无法访问常量静态标准::映射枚举结构