| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 630 人关注过本帖
标题:函数模板类型转换不成功~~
只看楼主 加入收藏
蜗牛进程
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2009-10-6
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:5 
函数模板类型转换不成功~~
:\c++程序\zy_8_11\11.cpp(11) : error C2667: 'swap' : none of 2 overload have a best conversion
D:\c++程序\zy_8_11\11.cpp(11) : error C2668: 'swap' : ambiguous call to overloaded function
D:\c++程序\zy_8_11\11.cpp(17) : error C2667: 'swap' : none of 2 overload have a best conversion
D:\c++程序\zy_8_11\11.cpp(17) : error C2668: 'swap' : ambiguous call to overloaded function
Error executing cl.exe.

zy_8_11.exe - 4 error(s), 0 warning(s)


#include <iostream>
template<class Any>
void swap(Any &a,Any &b);
int main()
{
    using namespace std;
    int i=10;
    int j=20;
    cout<<"i,j= "<<i<<" ."<<j<<endl;
    cout<<"using compiler -generated int swapper:\n";
    swap(i,j);
    cout<<"NOw i,j= "<<i<<". "<<j<<"\n";
     
    double x=24.5;
    double y=81.7;
    cout<<"x,y = "<<x<<" ."<<y<<endl;
    swap(x,y);
    cout<<"NOwx,y= "<<x<<" ."<<y<<endl;
    return 0;
}
template<class Any>
void swap(Any& a, Any& b)
{
    Any temp;
        temp=a;
    a=b;
    b=temp;
   
}
搜索更多相关主题的帖子: 模板 函数 类型 
2009-11-02 20:51
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:0 
确实如楼下说的,名字重了,改一下就可以了!还有一种方法就是把using namespace std;出掉,头文件变成#include<iostream.h>也可以

[ 本帖最后由 qlc00 于 2009-11-3 17:35 编辑 ]

Anything is possible!
2009-11-02 23:14
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:20 
回复 楼主 蜗牛进程
swap改个名字吧,用Swap或者其他。
因为在标准库里已经有swap函数了,所以重名了。

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-11-02 23:24
pywepe
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:296
专家分:483
注 册:2009-4-5
收藏
得分:0 
class不用换成typedef

原因是swap重名了

java群
62635216
欢迎加入
2009-11-03 12:03
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:0 
看来我记错了,我总是感觉class要在类模板中使用!,但是如果把头文件加.h的话就可以

Anything is possible!
2009-11-03 17:34
蜗牛进程
Rank: 1
等 级:新手上路
帖 子:20
专家分:3
注 册:2009-10-6
收藏
得分:0 
版主正解~~~我把那个改成大s就编译通过了
2009-11-03 18:24
快速回复:函数模板类型转换不成功~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012796 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved