C++ 围绕 "undefined/invalid" enum C++ 设计

C++ design around "undefined/invalid" enum C++

假设我有以下枚举。

enum VehicleType
{
    CAR,
    PLANE,
    UNDEFINED
};

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

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

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

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

创建名为 Vehicle 的基础 class 和 CarPlane 的子 class。这样你就可以完全摆脱枚举。