這是一個從geeksforgeeks中獲取的例子。我不明白以下代碼。如何在C++類模板中使用靜態變量
template<class T> int Test<T>::count = 0;
是計數外部變量嗎?爲什麼不讓靜態int count = 0? 下面列出了geeksforgeeks中的描述和代碼。
類模板和靜態變量:對於類模板的規則是 相同函數模板類模板的每個實例都有 其成員靜態變量的自己的副本。例如,在下面的 程序中有兩個實例Test和Test。因此存在兩個靜態副本 變量計數。
#include <iostream>
using namespace std;
template <class T> class Test
{
private:
T val;
public:
static int count;
Test()
{
count++;
}
// some other stuff in class
};
template<class T>
int Test<T>::count = 0;
int main()
{
Test<int> a; // value of count for Test<int> is 1 now
Test<int> b; // value of count for Test<int> is 2 now
Test<double> c; // value of count for Test<double> is 1 now
cout << Test<int>::count << endl; // prints 2
cout << Test<double>::count << endl; //prints 1
getchar();
return 0;
}