关于模版

shj1977 2009-06-16 03:35:23
#include<iostream>
using namespace std;
template<class T>
void swap(T& one,T& two)
{
T temp=one;
one=two;
two=temp;
}
int main()
{
int a=20;
int b=30;
swap(a,b);
cout<<a<<b<<endl;

double c=20.3;
double d=60.3;
swap(c,d);
cout<<c<<d<<endl;

return 0;
}
编译不过去,请问各位为什么
...全文
66 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shj1977 2009-06-17
  • 打赏
  • 举报
回复
明白了
谢谢
ican008 2009-06-16
  • 打赏
  • 举报
回复
祝你学习C++一路顺利,不懂的多问,多练习,多上机
ican008 2009-06-16
  • 打赏
  • 举报
回复
改了一下,可以实现了
#include<iostream>
using namespace std;
template<typename T>//你将“typename”写成“class”了
void chang(T& one,T& two) //将你的“swap”改为“chang”,更直观,且“swap”是不能用的
{
T temp;
temp=one;
one=two;
two=temp;
}
int main()
{
int a=20;
int b=30;
chang(a,b); //将你的“swap”改为“chang”,
cout <<a <<" "<<b <<endl;

double c=20.3;
double d=60.3;
chang(c,d); //将你的“swap”改为“chang”,
cout <<c <<" "<<d <<endl;

return 0;
}

pathuang68 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hikaliv 的回复:]
T 类型的 = 等号运算符需要重载,你没有做到。
[/Quote]
amossavez 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 shj1977 的帖子:]
#include <iostream>
using namespace std;
template <class T>
void swap(T& one,T& two)
{
T temp=one;
one=two;
two=temp;
}
int main()
{
int a=20;
int b=30;
swap(a,b);
cout < <a < <b < <endl;

double c=20.3;
double d=60.3;
swap(c,d);
cout < <c < <d < <endl;

return 0;
}
编译不过去,请问各位为什么
[/Quote]
“swap”: 对重载函数的调用不明确,因为库里有这个函数,改一下名字
nobby_zhaoyang 2009-06-16
  • 打赏
  • 举报
回复
菜鸟飘过
jest850615 2009-06-16
  • 打赏
  • 举报
回复
我觉得这题的意思是先请大家猜猜报的错是什么,哈哈哈
wbgxx 2009-06-16
  • 打赏
  • 举报
回复
swap 是库里面的东东!!
FreeMyself 2009-06-16
  • 打赏
  • 举报
回复
至少应该把错误原因发上来,才好分析
yshuise 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hikaliv 的回复:]
T 类型的 = 等号运算符需要重载,你没有做到。
[/Quote]
楼主写的代码不需要。
看是不是 using std::cout;
using std::endl;

光宇广贞 2009-06-16
  • 打赏
  • 举报
回复
T 类型的 = 等号运算符需要重载,你没有做到。
DirectX2009 2009-06-16
  • 打赏
  • 举报
回复
你没发现 编译的时候 提示你 函数重载么??
goodname 2009-06-16
  • 打赏
  • 举报
回复
应该和标准库中的swap重名了,
改个名字
my_swap
taodm 2009-06-16
  • 打赏
  • 举报
回复
呃,stl库里已经有一个叫swap的东东了,先改名。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧