【问题标题】:C++ design around "undefined/invalid" enum C++围绕“未定义/无效”枚举的 C++ 设计 C++
【发布时间】:2015-07-01 10:33:00
【问题描述】:

假设我有以下枚举。

enum VehicleType
{
    CAR,
    PLANE,
    UNDEFINED
};

现在在 Vehicle 中(想象一个具有 VehicleType 变量的简单类);默认构造函数我必须为车辆分配一些车辆类型。不知道它是什么,我不想称它为汽车或飞机,所以我称之为未定义。

这给枚举的用户带来了负担,因为他们必须考虑如何处理未定义的类型。如果我想摆脱 UNDEFINED,我在 C++03 中有哪些选择?

我可以考虑尝试重新设计,以使默认构造函数根本不可用,但不幸的是,从大局来看,这似乎并不可行。

编辑:这个问题比问题要复杂得多。但是这个问题的答案是正确的,所以我会接受。 :)

【问题讨论】:

    标签: c++ enums c++03


    【解决方案1】:

    创建一个名为Vehicle 的基类和CarPlane 的子类。这样你就完全摆脱了枚举。

    【讨论】:

    • 谢谢,这通常是要走的路。如果我想避免大量的类(可能有数百个 VehicleTypes)怎么办?
    猜你喜欢
    • 2019-06-15
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多