C++函数模版实现两数交换

#include<iostream>usingnamespacestd;template<classT>Tf(Ta,Tb){intt;t=a;a=b;b=t;return... #include<iostream>
using namespace std;
template<class T>
T f(T a,T b)
{
int t;
t=a;
a=b;
b=t;
return a;
return b;
}
/*template<>
char *f<char *>(char*a,char*b)
{
char *c;
c=a;
a=b;
b=c;
return a;
return b;
}*/
main()
{

int a=1,b=2;
//char *c;
cout<<"1,2:"<<f(1,2)<<endl;
cout<<"1.2,3:"<<f(int(1.2),3)<<endl;
cout<<"3.2,4.3:"<<f(double(3.2),double(4.3))<<endl;
cout<<f(char('a'),char('b'))<<endl;

}

这个程序输出的时候虽然已经交换但是却只能输出一个数,去而不能输出两个,高手帮帮改一下,谢谢。
展开
 我来答
v守望v
2009-12-15 · TA获得超过134个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:158万
展开全部
函数模板里面不能return两个的。
大致改了改,CodeBlocks下可以运行,
楼主按照自己的想法再改改看:

#include<iostream>
using namespace std;

template<class T>
void f(T &a,T &b)
{
T t;
t=a;
a=b;
b=t;
cout<<a<<" "<<b<<endl;
}

int main()
{

int a=1,b=2;
//char *c;
cout<<"1,2:";
f(a,b);
a = int(1.2);
b = 3;
cout<<"1.2,3:";
f(a,b);
float c = 3.2, d = 4.3;
cout<<"3.2,4.3:";
f(c,d);
char e = 'a', g = 'b';
cout<<"a,b:";
f(e,g);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式