这是一个常见的简单任务:从配置文件中读取配置设置,将设置(例如作为散列)保存在对象中,从需要访问配置参数的各种对象中访问该对象。
我为 ConfigFile 类实现找到了这个实现,它可以工作。我的问题是:让这个类的实例可从我的其他类中获得并保持线程安全、避免静态初始化顺序惨败等的最佳方法是什么?
我目前的方法是在 main() 中使用
// Read face detection related parameter values from the configuration file.
string configFileName = "detection_parameters.txt";
try {
parameters = ConfigFile( configFileName );
}
catch(ConfigFile::file_not_found) {
cerr << "configuration file not found: " << configFileName << endl;
exit(-1);
}
然后将参数设为全局变量。但我也读到应该使用单例而不是全局变量。如何用文件名实例化单例?
这一定是一项如此普遍的任务,我认为必须有一个普遍接受的好方法吗?如果有人能指出我,我将不胜感激。
谢谢, C