【送分】下面程序的运行结果
一道考试题,我不能理解下面的执行结果为什么是
40:15
#include <iostream.h>
template<class T>
T func(T x,T y)
{
if(sizeof(T)==8)// sizeof(T)什么意思?能给个参考吗?
return x+y;
else
return x*y;
}
void main()
{
cout <<func(8,5)<<":"<<func(5.0,10.0)<<endl;
int d;cin>>d;
}
#include <iostream.h>
template<class T>
T func(T x,T y)
{
// sizeof(T)就是类型T占多少个字节
//对于func(8,5), T被实例化为int,所以sizeof(int)=4, 返回8*5=40
//对于func(5.0,10.0), T被实例化为double, 所以sizeof(double)=8, 返回5.0+10.0=15
if(sizeof(T)==8)
return x+y;
else
return x*y;
}
void main()
{
cout <<func(8,5)<<":"<<func(5.0,10.0)<<endl;
int d;cin>>d;
}