若有以下程序: #include <iostream> using namespace std; template <class T> T min(T x,T y) { if(x<y)return x; elsereturn y; } int main() { int n1=2,n2=10; double d1=1.5;d2=5.6; cout<<min(n1,n2)<<","; cout<<min(d2,d2)<<end1; return 0; } 程序运行后的输出结果是 【13】 。
参考答案:2,1.5
解析: 上述程序中主函数的作用是从函数变量的两个值中挑选小的。在 main()中有两次调用min()函数,第1次以两个整数调用该函数,第2次以两个双精度数调用该函数。程序将min()设计成函数模板。当执行“min(n1,n2)”时,便建立了该函数模板的一个实例,这个过程称为函数模板实例化。生成的模板函数中两个变量的类型是int,int代替了占位符T,这个模板函数可以比较两个整数的大小。同理,当执行“min(d1,d2)”时,创建了该函数模板的第2个实例。