gpt4 book ai didi

c++ - 在派生类中覆盖/重新实现枚举

转载 作者:行者123 更新时间:2023-11-30 03:52:50 24 4
gpt4 key购买 nike

我正在为我的大学项目开发​​一个数据库程序。我有代表 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com