您好我有一個類工具,它有靜態變量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();
}
這項工作?
在上面的例子中,只有一個字符串被插入到靜態列表中。問題看起來像「在全局範圍內它嘗試在定義完成之前插入元素」 請讓我知道有沒有什麼方法可以設置靜態定義優先級?或者有沒有其他方法可以做到這一點。