这是一个从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;
}