[英]C++ static variable
有幾種選擇。 我想到的第一件事是C ++允許在多個翻譯單元中定義類模板的靜態數據成員:
template<class T>
struct dummy {
static int my_global;
};
template<class T>
int dummy<T>::my_global;
inline int& my_global() {return dummy<void>::my_global;}
鏈接器將多個定義合並為一個。 但是inline
單獨也能夠提供幫助,這個解決方案更加簡單:
inline int& my_global() {
static int g = 24;
return g;
}
您可以將此內聯函數放入頭文件中,並將其包含在許多翻譯單元中。 C ++保證此內聯函數返回的引用始終引用同一對象。 確保該功能具有外部鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.