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;
}
这个程序输出的时候虽然已经交换但是却只能输出一个数,去而不能输出两个,高手帮帮改一下,谢谢。 展开
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;
}
这个程序输出的时候虽然已经交换但是却只能输出一个数,去而不能输出两个,高手帮帮改一下,谢谢。 展开
1个回答
展开全部
函数模板里面不能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;
}
大致改了改,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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询