问题描述:
阅读下列程序,写出程序的运行结果。上机时运行程序,与你的预期进行对
照、理解。如果对运行结果和其背后的原理仍不理解,请通过单步执行的手段跟踪理解。
(5)理解函数模板:运行程序,结合课堂讲解,品味函数模板的意义。利用 codeBlocks 中的
Debug 功能,Step Into 到函数内部,观察每次调用时函数的参数值,体会类型参数 T 每次调用时被
不同实际类型替代。
#include <iostream> using namespace std; template<typename T> //模板声明,其中T为类型参数 T max(T a,T b,T c) //定义一个通用函数,用T作虚拟的类型名 { if(b>a) a=b; if(c>a) a=c; return a; } int main( ) { int i1=185,i2=-76,i3=567; double d1=56.87,d2=90.23,d3=-3214.78; long g1=67854,g2=-912456,g3=673456; cout<<"i_max="<<max(i1,i2,i3)<<endl; //调用模板函数,此时T被int取代 cout<<"f_max="<<max(d1,d2,d3)<<endl; //调用模板函数,此时T被double取代 cout<<"g_max="<<max(g1,g2,g3)<<endl; //调用模板函数,此时T被long取代 cout<<"c_max="<<max('1','a','A')<<endl; //调用模板函数,此时T被long取代 return 0; }