template question 2
2. 显示模板函数的返回类型:
一:可以不指定返回类型。如:
#include<iostream>
using namespace std;
template <class T,class U>
sum(T a,U b)
{
return a+b;
}
int main()
{
char a='A';
double b=10;
cout<<sum(b,a)<<endl;
return 0;
}
/*
我写sum('A',10)、sum(1.1,22.1)等的返回类型都是int
请问sum的返回类型永远都是int吗?
问题点数:20、回复次数:8Top
1 楼pongba(刘未鹏|http://blog.csdn.net/pongba)回复于 2006-03-03 19:13:57 得分 0
谁说可以的?Top
2 楼cxc014(有心插柳柳不活,无心栽花花开花?)回复于 2006-03-03 19:27:36 得分 0
你用的什么编译器,我根本编译通不过Top
3 楼fangrk(加把油,伙计!)回复于 2006-03-03 19:43:39 得分 0
可以不指定返回类型——哪本书告诉你的?Top
4 楼tommy851027(努力,努力!)回复于 2006-03-03 21:20:36 得分 0
//我用的VC6
#include<iostream>
using namespace std;
template <class T,class U>
sum(T a,U b) //这没写返回类型啊,请问sum返回什么类型
{
return a+b;
}
int main()
{
char a='A';
double b=10;
cout<<sum(b,a)<<endl;
return 0;
}
Top
5 楼tommy851027(努力,努力!)回复于 2006-03-03 21:22:22 得分 0
结果是75,也就证明说sum返回的是int型,可是我根本没定义int型啊,请问为什么啊Top
6 楼bm1408(向va_list学习~不用VC好多年~)回复于 2006-03-03 21:26:50 得分 0
根据类型提升返回一个高类型的Top
7 楼fangrk(加把油,伙计!)回复于 2006-03-03 22:31:47 得分 20
我记得C语言中返回类型如果不写,表示int
#include<iostream>
using namespace std;
template <class T,class U>
sum(T a,U b) //这没写返回类型啊,请问sum返回什么类型
{
return a+b;
}
int main()
{
char a='A';
double b=10.234;
cout<<sum(b,a)<<endl;
return 0;
}
仍然显示75,表明返回类型仍然被解释为int,而不是提升到doubleTop
8 楼cenlmmx(学海无涯苦作舟)回复于 2006-03-03 22:53:10 得分 0
同意楼上Top




