|
发表于 2009-11-2 06:14:37
|
显示全部楼层
IP:江苏扬州
以下是引用badly1984在2006-4-5 21:40:00的发言:
今天在编一个关于函数模板的程序时遇到了问题,编译环境为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++标准的程序无法运行?如果可以运行,该怎样修改? |
|