类模板中的static成员变量是所有的模板类共享,还是每个模板类都有自己的static成员变量。
template<typename T>
class TA
{
public:
static T a;
public:
TA()
{
}
};
template<typename T>
T TA<T>::a = 10;
int main()
{
//说明static属于的是具体类型的类
TA<int> Oa;
Oa.a += 10;
cout << Oa.a << endl;
TA<int> Ob;
cout << Ob.a << endl;
TA<char> Ca;
cout << (int)Ca.a << endl;
return 0;
}
结论:
static属于类模板实例化的模板类。实例化的模板类有多个,则static成员分别属于多个模板类。即模板类有自己的static成员,互不干扰。