第十二周 项目一:阅读程序(5)

来源:互联网 发布:浙江大学网络充值 编辑:程序博客网 时间:2024/04/28 06:42

问题及代码:

/** Copyright (c) 2014, 烟台大学计算机学院* All rights reserved.* 文件名称:Project4.cpp* 作    者:李楠* 完成日期:2014年11月13日* 版 本 号:v1.0** 问题描述:理解函数模板* 输入描述:略* 程序输出:略*/#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;}

运行结果:

知识点总结:

通过利用codeblocks中的debug功能,step into到函数内部,观察每次调用时函数的参数值,发现类型参数T每次调用时被不同实际类型替代~

学习心得:

函数模板很好用啊~他可以解决简单重复的函数定义问题~

 

0 0