zoukankan      html  css  js  c++  java
  • 019_linuxC++之_函数模板引入

    (一)首先我们来看非模板程序,函数只是输入不一样的变量就需要构件很多个不一样的函数,那么这样很麻烦,则引入函数模板

     1 int& max(int& a, int& b)
     2 {
     3     return (a < b)? b : a;
     4 }
     5 
     6 double& max(double& a, double& b)
     7 {
     8     return (a < b)? b : a;
     9 }
    10 
    11 float& max(float& a, float& b)
    12 {
    13     return (a < b)? b : a;
    14 }
    View Code

    (二)函数模板引入:函数模板不是一个实在的函数,编译器不能为其生成可执行代码。定义函数模板后只是一个对函数功能框架的描述,当它具体执行时,将根据传递的实际参数决定其功能。

    template<类型形式参数表>
    
    返回类型 函数名(形式参数表)
    
    {
    
    ... //函数体
    
    }
     1 #include <iostream>
     2 #include <string.h>
     3 #include <unistd.h>
     4 
     5 using namespace std;
     6 
     7 template<typename T>
     8 T& mymax(T& a, T& b)
     9 {
    10     cout<<__PRETTY_FUNCTION__<<endl;/*打印函数定义*/
    11     return (a < b)? b : a;
    12 }
    13 
    14 int main(int argc, char **argv)
    15 {
    16     int ia = 1;
    17     int ib = 2;
    18     double da = 3;
    19     double db = 4;
    20     mymax(ia, ib);
    21     mymax(da, db);
    22 
    23     return 0;
    24 }
    View Code

    运行结果

  • 相关阅读:
    debian修改crontab默认编辑器为vim
    正确用DD测试磁盘读写速度
    西数WD2T硬盘分区对齐的方法
    优化UITableView
    登录功能验证处理
    登录注册界面
    navigationbar
    tab bar controller
    ios之coretext
    ios之coredata
  • 原文地址:https://www.cnblogs.com/luxiaoguogege/p/9707981.html
Copyright © 2011-2022 走看看