​#include <iostream.h> 

template<class T>
T func(T x,T y){
if(sizeof(T)==8)
return x+y;
else
return x*y;
}
void main(){
cout <<func(8,5)<<":"<<func(5.0,10.0)<<endl;

程序分析题:阅读程序后,填写程序的正确运行结果。


​#include <iostream.h> 

template<class T>
T func(T x,T y){
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:
}


【正确答案】:

40:15


【题目解析】:

sizeof() 是一个判断数据类型或者表达式长度的运算符。 

使用类模板,用户可以为类定义一种模式,使得类中的某些成员变量、默认成员函数的参数、某些成员函数的返回值及局部变量能取任意类型。
8和5是int类型数据占4个字节,5.0和10.0是double型数据,占8 个字节。故if(sizeof(T)==8)的含义是整数返回乘积,小数返回和,即先返回乘积,再返回和,答案为40:15


Top