C++ 模板类和静态成员变量
当一个模板类产生不同的类时,每个类产生的对象共享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
| #include <bits/stdc++.h>
template <typename size_type> class hello { public: static int s_a; void add() { s_a++; } };
template <class size_type> int hello<size_type>::s_a = 0;
int main () { hello<int> h3; hello<char> h4;
h3.add(); h4.add(); h4.add(); std::cout << hello<int>::s_a << std::endl; std::cout << hello<char>::s_a << std::endl;
}
|