|
|
Для каждого шаблонного класса или функции, создаваемых по шаблону типа, образуется своя копия статических переменных или членов. Рассмотрим пример:
template<class T> class X { static T s; // ... }; X<int> aa; X<char*> bb;
Здесь в классе X<int> есть статический член типа int, а в классе X<char> есть статический член типа char*. Аналогично, в приведенном ниже примере, функция f(int*) имеет статический член s типа int, а функция f(char**) имеет статический член типа char**:
template<class T> f(T* p) { static T s; // ... } void g(int a, char* b) { f(&a); f(&b); }
| |