围绕"undefined/invalid"枚举C++进行C++设计

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

本文关键字:C++ 进行 设计 枚举 invalid undefined 围绕      更新时间:2023-10-16

假设我有以下枚举。

enum VehicleType
{
    CAR,
    PLANE,
    UNDEFINED
};

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

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

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

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

创建一个名为Vehicle的基类以及CarPlane的子类。通过这种方式,您可以完全消除枚举。