#include<iostream.h>
template<class T>
class Sample
{
public:
Sample();
static int i;
};
template<class T>
int Sample<T>::i = 0;
template<class T>
Sample<T>::Sample()
{
i++;
cout<<i;
}
void main()
{
Sample<int>s1;
Sample<float>s2;
Sample<char>s3;
}
Run Code Online (Sandbox Code Playgroud)
输出:111
我退出的原因是什么?
输出111(而不是123)的原因是Sample<int>,Sample<float>并且Sample<char>是三种完全不同的类型,因此它们每个都有自己独立的静态变量i.
您有一个名为的模板Sample,每次使用不同的模板参数对其进行实例化时,它都会使用该模板根据模板动态创建新类.但是使用模板创建的类彼此之间没有关系,并且不共享静态信息.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |