我正在开发一个从输入目录中读取文件,对其进行处理并
    将它们加载到数据库。 Filelist和CurrentFile这两个类是应用程序的一部分。
    类的定义如下。

class Filelist
{

   //list of files
   list of files;

   // pointer to the current file
   CurrentFile *ptr
};

class CurrentFile
{

   vector<list of records>

   methods to process the records
   ..
   ..
};


我必须添加另一个审计结构,以跟踪成功处理的记录和
错误记录。所有文件都存储完后,此审核结构将加载到数据库中
处理。

struct Recaudit
{
     //record to keep track of
     //Various counts
     int successcnt;
     int errorcnt;
     billedcnt;
     some other counts related to the records
};


该审核记录具有跨CurrentFile多种方法设置的数据集。

可以将此审核记录设为CurrentFile的成员变量(或),如果我将其声明为
静态全局变量?

最佳答案

我想,审计是某种日志?您必须对其目的做出决定。


如果它是一个通用日志,并且可以选择存储有关导入状态的信息,则应将其设置为单例(一种“安全”的全局变量)。它与OOP规则一致,但所有相关方都可以轻松使用该类。
如果它是专门为存储有关导入状态的信息而设计的,则它必须可供执行计算的对象使用,但应存储在上一层(例如,在包含所有计算对象列表的对象中)。在您的情况下,FileList应该是Audit的父级(例如,它应该保持其生命周期),但是CurrentFile应该在构造函数中获取Audit的实例,以便可以在其中存储计算结果。在两种情况下,如果您打算实施多任务,请多加注意。

10-08 01:07