围绕"undefined/invalid"枚举C++进行C++设计
C++ design around "undefined/invalid" enum C++
假设我有以下枚举。
enum VehicleType
{
CAR,
PLANE,
UNDEFINED
};
现在在Vehicle中(想象一个简单的类,它有一个VehicleType变量);默认构造函数我必须为车辆分配一些车辆类型。不知道它是什么,我不想称它为汽车或飞机,所以我称它为未定义。
这给枚举的用户带来了负担,因为他们必须考虑如何处理未定义的类型。如果我想摆脱UNDEFINED,我在C++03中有什么选择?
我可以考虑重新设计,这样默认构造函数就根本不可用了,但不幸的是,从大局来看,这似乎并不可行。
编辑:这个问题比这个问题复杂得多。但是这个问题的答案是正确的,所以我接受
创建一个名为Vehicle
的基类以及Car
和Plane
的子类。通过这种方式,您可以完全消除枚举。
相关文章:
- 通过递归进行因子分解
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 使用libgit2、c++进行pull
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 如何使用模板函数的函数签名进行SFINAE
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 将模板化的类型与C++中的某些类/类型进行比较
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 如何对点云数据进行排序
- 从文本文件中读取时钟时间和事件时间并进行处理
- 对字符串进行位操作
- 是否可以使用winusb同时与多个相同的usb设备进行通信
- 是否可以对零模板参数进行模板专门化
- 对字符串进行排序时,在c++中处理sort()
- 试图对缓存进行跨步测试,但程序并没有结束
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- C++将目录中的所有文件与::filesystem进行比较