一个小的但又不简单C++问题,实在搞不明白,大家进来看看
#include<iostream.h>
template<class T> c(T a);
int main()
{
cout<<c(1)<<endl;
cout<<c(2.0)<<endl;
cout<<c(4.0)<<endl;
cout<<c(3)<<endl;
return 0;
}
template<class T> c(T a)
{
static T b =a;
cout<<"a= "<<a<<" b= "<<b <<" a+b= "<<a+b<<endl;
return a+b;
}
输出结果:
a= 1 b= 1 a+b= 2
2
a= 2 b= 2 a+b= 4
4
a= 4 b= 2 a+b= 6 //b怎么和a不相等
6
a= 3 b= 1 a+b= 4
4
问题:为什么到后面b的值和a的值不一样?明白人能解释一下吗!