【问题标题】:How to create object using enum element如何使用枚举元素创建对象
【发布时间】:2017-01-24 13:51:13
【问题描述】:

我的枚举由类名组成。例如:

class A{};
class B{};

class example{
    enum set_of_classnames {A,B}

};

我想在示例类中创建类A 和B 的对象。使用迭代器或for 循环,我可以通过枚举元素为 A 和 B 创建对象吗?

【问题讨论】:

  • 也许是std::map 将枚举映射到工厂函数?
  • 我不清楚您在问什么,并且您的问题可能的解决方案范围非常广泛
  • 哦,与其要求我们帮助解决未知问题,不如告诉我们您实际尝试使用此解决方案解决什么问题? XY 问题请见this related reading。
  • 你可以创建一个类型列表并枚举它 (stackoverflow.com/questions/7704589/…) 但是(尝试)将类型放入枚举而不是数字将不起作用。
  • A 和 B 有共同的基类吗?枚举值是在编译时知道的吗?

标签: c++ enums


【解决方案1】:

当然:

set_of_classnames choice = choose(); // class can be chosen at runtime
if(choice == A) {
    class A object;
} else if(choice == B) {
    class B object;
}

这段代码可以循环使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2013-10-13
    • 1970-01-01
    相关资源
    最近更新 更多