C++ 类模板中static关键字

类模板中的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成员,互不干扰。

猜你喜欢

转载自blog.csdn.net/wue1206/article/details/81486180