关闭

关于模板类中静态成员

164人阅读 评论(0) 收藏 举报
分类:

类模板实例化的每个模板类都有自己的类模板静态数据成员,该模板类的所有对象共享一个静态数据成员。

比如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;
}

注意:如果不是模板类,则所有的类实例共享一个静态成员。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:48127次
    • 积分:2555
    • 等级:
    • 排名:第14948名
    • 原创:215篇
    • 转载:20篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论