今天在编一个关于函数模板的程序时遇到了问题,编译环境为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编辑过]