| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1843 人关注过本帖
标题:这个函数模板怎么不能用?
只看楼主 加入收藏
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
函数名冲突
3楼正解

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2008-10-03 12:19
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
得分:0 
为什么这个函数模板出错?
#include "stdafx.h"
#include<iostream>
using namespace std;

template<typename T>
void swap(T& a,T& b)
{T z;
z=a;a=b;b=z;
}

int _tmain(int argc, _TCHAR* argv[])
{   double x1=1.243;
    double x2=2.1236;
    swap(x1,x2);
    cout<<"x2="<<x2<<"  "<<"x1="<<x1<<endl;
    return 0;
}

这是我在VC++2005中测试的一个有关交换数据的函数模板程序,但总是调不出来,也不知错在哪了,请高手指点一下,多谢多谢
2008-11-18 19:10
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
得分:0 
回复 11# 的帖子
但是我将 T 改成double 后能用啊!
2008-11-18 19:12
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
得分:0 
很奇怪,不知这个程序哪出错了?
这是一道关于求两数最大公约数与最小公倍数最笨的但最易想到的方法,编译通过了,但当输入两个不能整除的数时(如8,12),不能得出正确结果,请教大家错误出在哪了?
#include "stdafx.h"
#include<iostream>
using namespace std;

int fun1(int i,int j)
{
  int temp;
  if(i<j)
   {temp =j;j=i;i=temp;};
 int k;
 for(k=j;k>1;j--)
   {if ((i%k==0)&&(j%k==0))
     return k;}
 return 1;    
}                           //错误很可能出在这里了,但不知怎么改
int _tmain(int argc, _TCHAR* argv[])
{cout<<"enter two number:";
 int x,y;
 cin>>x>>y;
 cout<<"最大公约数是:"<<fun1(x,y)<<endl;
 cout<<"最小公倍数是:"<<x*y/fun1(x,y);
    return 0;
}
2008-11-18 19:31
lwf902
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-11-18
收藏
得分:0 
不好意思,初来乍到,搞错了
请主人谅解,我是新手,本来是要别人帮我解惑的,可竟然将问题提到了你的回复你去了,不好意思了,搞错了.
2008-11-18 19:35
快速回复:这个函数模板怎么不能用?
数据加载中...
 
   



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

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