谁知道在c++中怎么在模板中使用静态变量啊?
在学到c++模板时,忽然想到静态变量,于是试一下,但是出不了结果,不知道使用时有什么规则?请哪位高手指教一下!!谢谢~~~~~


程序代码:#include <iostream>
using namespace std;
class A{
public:
A(int n):v2(n){}
static int v1;
const int v2;
static const int v3=3;
};
int A::v1=1;
int main(){
printf("%d",sizeof(A));
getchar();
}请看这个例子。运行结果是4,也就是说,只有一个成员是属于对象的,是哪一个呢?是v2!其实编译时,所有的静态变量都是在静态变量区定义的。虽然v2是常量,但是也是要占内存空间的,这其实就是C++里面常量和C里面的预处理符号常量的最大区别:C的符号常量是不占内存空间的……
程序代码:#include <iostream>
using namespace std;
template<class T>
class A{
public:
A(T n):v2(n){}
static T v1;
const T v2;
static const T v3=3;
};
template<class T>
T A<T>::v1=1;
int main(){
printf("%d",sizeof(A<int>));
getchar();
}请注意代码的变化。模板类是在每一次实例化的时候编译的,换句话说,如果代码里面没有用到模板类,那么类里面的语法错误就永远不会被发现。