在 Ubuntu 上运行 c++。
在 configuration.h 文件中我有这个(全局):
static const string APP_CONFIG_FILE_NAME = "cfg";
在我的 configuration.cpp (顺便说一下,这是单例的,所以加载配置由 Configuration 的构造函数调用)我这样做:
void Configuration::loadConfiguration() {
cout<< "config file name " << APP_CONFIG_FILE_NAME.data();
load();
}
加载配置将从另一个全局调用:(这是失败的关键点)
Timer t(Configuration::Instance()->timeout);
我看到成本字符串未初始化(空)。如果我用 char* 替换字符串,它会按我预期的顺序初始化。
但是在另一个程序上,相同的类用于配置工作,所以我不知道问题所在。
还有另一个问题,但不一样,因为它不是全球性的。