新英朗变速箱脱档:函数模板为什么不能写在主函数之后?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 07:23:57
好像函数模板都是定义在主函数之前,定义在后就错了(我水平有限,定义在后面没一次正确,如果你能定义,不妨指点下,谢谢).而且在网上搜索了一些资料,全都是定义在离函数之前.

为什么只能定义在主函数之前?谢谢

(以下为程序,仅供参考)
#include<iostream>
using namespace std;
template<typename T>
T max(T a,T b,T c)
{T max;max=(a>b)?a:b;max=(max>c)?max:c;return max;}

int main()
{int a1,b1,c1;double a2,b2,c2;long a3,b3,c3;
cout<<"请输入3个整数:";cin>>a1>>b1>>c1;
cout<<"请输入3个双精度数:";cin>>a2>>b2>>c2;
cout<<"请输入3个长整数:";cin>>a3>>b3>>c3;

cout<<"输出3个整数中最大数为:"<<max(a1,b1,c1)<<endl;
cout<<"输出3个双精度最大数为:"<<max(a2,b2,c2)<<endl;
cout<<"输出3个长整数最大数为:"<<max(a3,b3,c3)<<endl;

return 0;}
怎么书上一字都没提过?
那个是从上到向下,但是我可以先声明.但是声明却没用.会不会是编译器问题啊?我用的VC++6.0

最基本的编程顺序

C语言程序载入时按从上到下的方式进行的
如果模板在Main后面,
那么载入时读到了main就直接开始执行
这样就读不到模板的数据了