我正在为我的大学项目开发一个数据库程序。
我有代表 Invoice
的基类和代表 CorrectedInvoice
的派生类。最后,我想将数据存储到文件中,因此我使用枚举来指示它们存储的顺序:
enum FIELD_ORDER
{
ID,
IVOICE_NUM,
TIME,
CLIENT_ID,
COST,
SIZE // fields' length
};
在派生类中,我们有附加字段指示我们要更正哪个发票,并且字段的顺序也会更改。 我尝试用 #ifdef block 包围枚举,但预处理器始终首先通过基类文件运行,因此我无法为每个类声明所需的枚举。我怎样才能达到这样的效果呢?有没有更好的方法来存储订单?我在(反)序列化中使用它,我希望它在循环/开关语句中灵活且可用。
@编辑 我忘了提到字段顺序在运行时不会改变,所以这就是我想出枚举的原因。
最佳答案
只是一个建议,在类中声明枚举,如下所示,
class BaseClass
{
public:
enum FIELD_ORDER
{
ID,
IVOICE_NUM,
TIME,
CLIENT_ID,
COST,
SIZE // fields' length
};
};
class DerivedClass : public BaseClass
{
public:
enum FIELD_ORDER
{
//Derived Version
};
};
然后使用以下方式访问FIELD_ORDER对应版本
BaseClass::FIELD_ORDER
关于c++ - 在派生类中覆盖/重新实现枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464247/