我将CSimpleIniA包装在 Config 类中以管理“config.ini”文件中的配置选项。
在我提供的示例中,在构造函数sample_size
中读取。Config
调用时readSampleSize()
,返回配置文件的值。
相比之下,readInitialPos()
应该(我所期望的)能够读取config.ini
并返回inital_pos
. 相反,它返回默认值,即第三个参数70000
。
我不明白为什么第二种方法不起作用。
配置文件
class Config {
private:
unsigned long int sample_size;
public:
unsigned long int readInitialPos ();
unsigned long int readSampleSize ();
CSimpleIniA ini;
Config ();
};
配置文件
#include "../include/config.hpp"
Config::Config ()
{
CSimpleIniA ini;
int error_nr = ini.LoadFile("config/config.ini");
if ( error_nr ) {
cout << "Error " << error_nr << " opening config.ini file." << endl;
exit(3);
}
sample_size = ini.GetLongValue("Rock", "sample_size", 50);
}
unsigned long int Config::readInitialPos ()
{
return ini.GetLongValue("Rock", "initial_pos", 70000);
}
unsigned long int Config::readSampleSize ()
{
return sample_size;
}
来电者,rock.cpp
void Rock::readConfig ()
{
Config config;
initial_pos = config.readInitialPos ();
sample_size = config.readSampleSize ();
}