您的位置:首页 > 其它

关于模板类中静态成员

2015-11-18 12:22 274 查看
类模板实例化的每个模板类都有自己的类模板静态数据成员,该模板类的所有对象共享一个静态数据成员。

比如int的所有实例共享一个静态数据成员,char的所有实例共享一个。

下面来看个例子:

#include <iostream>

using namespace std;

template <typename T>
class testClass{
public:
static int _data;
};

int testClass<int>::_data = 1; //对静态成员进行初始化
int testClass<char>::_data = 2;

int main()
{
cout << testClass<int>::_data << endl;
cout << testClass<char>::_data << endl;

testClass<int> obji1, obji2;
testClass<char> objc1, objc2;

cout << obji1._data << endl;
cout << obji2._data << endl;
cout << objc1._data << endl;
cout << objc2._data << endl;

obji1._data = 3;
objc2._data = 4;

cout << obji1._data << endl;
cout << obji2._data << endl; //相同类(int)的实例共用一个
cout << objc1._data << endl;
cout << objc2._data << endl;

return 0;
}

注意:如果不是模板类,则所有的类实例共享一个静态成员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: