c++中全局变量的用法
Usage of Global variables in C++
我正在开发一个应用程序,该应用程序从输入目录读取文件,处理它们并返回将它们加载到DB。两个类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
..
..
};
我必须添加另一个Audit结构来跟踪成功处理的记录和错误的记录。该审计结构在所有文件加载到DB之后加载到DB中处理。
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应该是审计的父类(例如:它应该维持它的生命周期),但是CurrentFile应该在构造函数中获得Audit的实例,这样它就可以在其中存储计算结果。在这两种情况下,如果你打算实现多任务处理,请谨慎处理。
相关文章:
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 当vector是tje全局变量时,c++中vector的内存管理
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 内联函数中具有内部链接的全局变量
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 全局变量 多读取器 一个写入器多线程安全?
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 不同作用域中的静态变量和全局变量
- C++ 在编译时具有函数计算全局变量
- 修改程序的入口点时未调用全局变量的构造函数
- 使用 std::ios_base::Init 正确初始化全局变量
- 为什么我的全局变量似乎没有变化?
- C ++程序如何返回我的数组或写入全局变量
- 为什么我的数组值与此处的全局变量不匹配?
- QT C++中对全局变量的未定义引用
- 跨多个类的全局变量而不会出现重定义错误?
- 赋予全局变量而不是局部变量优先级的函数 - (异常行为)
- C++线程不检测全局变量更改
- 在 elf 文件中查找全局变量的位置
- c++中全局变量的用法