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 和 Car
和 Plane
的子 class。这样你就可以完全摆脱枚举。
假设我有以下枚举。
enum VehicleType
{
CAR,
PLANE,
UNDEFINED
};
现在在 Vehicle 中(想象一个简单的 class 有一个 VehicleType 变量);默认构造函数我必须为车辆分配一些车辆类型。不知道它是什么,我不想称它为汽车或飞机,所以我称它为未定义的。
这给枚举的用户带来了负担,因为他们必须考虑如何处理未定义的类型。如果我想摆脱 UNDEFINED,我在 C++03 中有哪些选择?
我可以考虑尝试重新设计,使默认构造函数根本不可用,但不幸的是,从大局来看,这似乎不太可行。
编辑:这个问题比问题复杂得多。但是这个问题的答案是正确的,所以我会接受。 :)
创建名为 Vehicle
的基础 class 和 Car
和 Plane
的子 class。这样你就可以完全摆脱枚举。