您好我有一个类工具,它有静态变量std :: vector m_tools。C++中的静态变量定义顺序
我可以从其他文件中定义的其他类的全局范围中插入值到静态变量中。
实施例:
的Tools.h文件
class Tools
{
public:
static std::vector<std::vector> m_tools;
void print()
{
for(int i=0 i< m_tools.size() ; i++)
std::cout<<"Tools initialized :"<< m_tools[i];
}
}
tools.cpp文件
std::vector<std::vector> Tools::m_tools; //Definition
使用寄存器类构造用于置入新的字符串转换成静态变量。
class Register
{
public:
Register(std::string str)
{
Tools::m_tools.pushback(str);
}
};
不同类插入字符串静态变量在静态变量
first_tool.cpp
//Global scope declare global register variable
Register a("first_tool");
////////
second_tool.cpp
//Global scope declare global register variable
Register a("second_tool");
Main.cpp的
void main()
{
Tools abc;
abc.print();
}
这项工作?
在上面的例子中,只有一个字符串被插入到静态列表中。问题看起来像“在全局范围内它尝试在定义完成之前插入元素” 请让我知道有没有什么方法可以设置静态定义优先级?或者有没有其他方法可以做到这一点。