/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:呼亚萍
* 完成日期:2014年 11 月 17日
* 版 本 号:v1.0
*
* 问题描述:利用codeBlocks中的DEBUG功能,Step into 到函数内部,体会类型参数T每次调用时被不同实际类型替代
* 输入描述:相应的程序
* 程序输出:有关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;
}
运算结果:
知识点总结:
单步执行时,先按Debug,再按step into,出现三角形后,一直step into 观察有关T的值与类型
学习心得:
刚开始的时候一直无法输出T的值,和同学一起讨论后才完成任务,很开心,加油!