类模板中的static成员
类模板中的static成员单独属于每一个实例化出来的类
也就是说每个具体化类的static成员都是不一样的,没有关联的
例如有一个模板类A中有一个static成员
类A<int>和类A<double>都有自己的static成员,他们两个的static成员是不同且没有关联的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #define _CRT_SECURE_NO_WARNINGS #include <iostream>
using namespace std;
template <class T> class A { public: T value; static T a; };
template <class T> T A<T>::a = 0;
int main(void) { A<int> a1, a2, a3; A<char> b1, b2, b3;
A<int>::a = 20; A<char>::a = 'X';
cout << "a1:a = " << a1.a << endl; cout << "b1:a = " << b1.a << endl;
cout << "a2:a = " << a2.a << endl; cout << "a3:a = " << a3.a << endl;
cout << "b2:a= " << b2.a << endl; cout << "b3:a = " << b3.a << endl;
return 0; }
|