c++ 交换值的函数模板

#include<iostream>usingnamespacestd;template<classT>voidswap(T&m,T&n){Ttemp;temp=m;m=... #include<iostream>
using namespace std;
template<class T>
void swap(T &m,T &n)
{
T temp;
temp=m;
m=n;
n=temp;
}
int main()
{
int a=2;
int b=3;
swap(a,b);
double c=11.2;
double d=22.3;
swap(c,d);
cout<<a<<" "<<b;
cout<<endl<<c<<" "<<d;
return 0;
}
求助各位:
我用的是visual c++ 6编译器,编译时会报错,可是我怎么都看不出错来,我把,传递引用改为
传递指针又没有问题了,请问是怎么回事呀?
展开
 我来答
seasovl
2010-10-04 · TA获得超过221个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:264万
展开全部
#include<iostream>
using namespace std;
template<class T>
void swap(const T &m,const T &n)
{
T temp;
temp=m;
m=n;
n=temp;
}
int main()
{
int a=2;
int b=3;
swap(a,b);
double c=11.2;
double d=22.3;
swap(c,d);
cout<<a<<" "<<b;
cout<<endl<<c<<" "<<d;
return 0;
}
zrj_bd
2010-10-04 · TA获得超过1870个赞
知道小有建树答主
回答量:647
采纳率:100%
帮助的人:1104万
展开全部
和标准模板库里面的swap混淆了。
把swap换个名就好了,例如换成myswap
修改代码如下:
#include<iostream>
using namespace std;
template<class T>
void myswap(T &m,T &n)
{
T temp;
temp=m;
m=n;
n=temp;
}
int main()
{
int a=2;
int b=3;
myswap(a,b);
double c=11.2;
double d=22.3;
myswap(c,d);
cout<<a<<" "<<b;
cout<<endl<<c<<" "<<d;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式