我有如下代码,我遇到了静态对象顺序创建问题。
h1.hpp
namespace X {
struct XX {
static const string str1;
static const string str2;
};
}
h1.cpp
namespace X {
const string XX::str1 = "Hello World";
const string XX:str2 = "Hello Country";
}
h2.cpp ----> included h1.hpp
h3.cpp ----> included h1.hpp
h4.cpp ----> included h1.hpp
------
我想以 [X::XX::str1] 的身份访问它
func1(X::XX::str1); etc.
什么是最好的方法,因为上面的方法给了我一些静态对象创建顺序问题,当我尝试访问 X::XX::str1 时,我得到空而不是“Hello World”。我如何确保不是在每个创建本地副本的地方都使用相同的对象(X::XX:str1)。
更新信息:
实际上,当我访问 X::XX::str1 程序段错误时。所以没有创建对象?