标题:[求助]关于C++中的函数模板
取消只看楼主
badly1984
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-3-9
 问题点数:0 回复次数:1 
[求助]关于C++中的函数模板

今天在编一个关于函数模板的程序时遇到了问题,编译环境为Dev-C++ 4.9.9.2和VC6

正常运行的程序:

#include <stdlib.h>
#include <iostream.h>

template <class T> void swap(T &,T &);

int main(int argc, char *argv[])
{
int a,b;
cout<<"请输入A的值:";
cin>>a;
cout<<"请输入B的值:";
cin>>b;
cout<<"A="<<a<<" B="<<b<<endl;
swap(a,b);
cout<<"After swap:"<<"A="<<a<<" B="<<b<<endl;
system("PAUSE");
return 0;
}

template <class T> void swap(T &i,T &j)
{
T t;
t=i;
i=j;
j=t;
cout<<"In swap:A="<<i<<" B="<<j<<endl;
}


无法正常运行的程序:

#include <cstdlib>
#include <iostream>

using namespace std;

template <class T> void swap(T &,T &);

int main(int argc, char *argv[])
{
int a,b;
cout<<"请输入A的值:";
cin>>a;
cout<<"请输入B的值:";
cin>>b;
cout<<"A="<<a<<" B="<<b<<endl;
swap(a,b);
cout<<"After swap:"<<"A="<<a<<" B="<<b<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

template <class T> void swap(T &i,T &j)
{
T t;
t=i;
i=j;
j=t;
cout<<"In swap:A="<<i<<" B="<<j<<endl;
}


我想问一下为什么后一种用ANSI C++标准的程序无法运行?如果可以运行,该怎样修改?

[此贴子已经被作者于2006-4-5 21:47:45编辑过]

搜索更多相关主题的帖子: 函数 模板 
2006-04-05 21:40
badly1984
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-3-9
得分:0 
2樓和4樓都是正解..................

一個是用庫中的swap,一個是用自定義的Swap...............

看起來,我居然不是最差的...........— —b,lululau同學還要繼續努力呀..........
2006-04-06 21:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-55396-1-1.html




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

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